j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境

news/2024/5/11 2:56:49/文章来源:https://blog.csdn.net/weixin_34353714/article/details/91673214

为什么80%的码农都做不了架构师?>>>   hot3.png

《j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目》
《j2ee 简单网站搭建:(二)添加和配置 spring + spring-mvc 的 mvc 开发环境》
《j2ee 简单网站搭建:(三)在搭建好的 spring maven web 项目中加入 mybatis 访问数据库》
《j2ee 简单网站搭建:(四)将 freemaker 模板引擎作为 spring-mvc 展现层》
《j2ee 简单网站搭建:(五)使用 jcaptcha 生成验证码图片》
《j2ee 简单网站搭建:(六)使用 hibernate validation 实现 domain 层实体类验证》
《j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录》
《j2ee 简单网站搭建:(八)使用 jquery-validate 实现页面验证入门》
《j2ee 简单网站搭建:(九)jquery datatables + jquery ui dialog 插件使用入门》
《j2ee 简单网站搭建:(十)jquery ztree 插件使用入门》
《j2ee 简单网站搭建:(十一)ckeditor 控件使用入门》

spring 已经成为 j2ee 项目中的标配,在完成 maven web 项目的基本构建后,就需要通过 maven 的方式引入 spring 和 spring-mvc 包,然后通过新建 spring 和 spring-mvc 的配置文件并在 web.xml 中完成相应配置。

相关框架版本
spring 及 spring-mvc 4.0.0-b01

注意事项:在向项目内添加文件前请先将 eclipse 环境设置为 utf-8 编码,否则经常会出现读取文件出错、乱码等问题,具体操作如下图:

一 pom.xml 中添加 spring、spring-mvc 的相关 jar 包文件

<properties><servlet.version>4.0.0-b01</servlet.version><jstl.version>1.2</jstl.version><taglibs.version>1.1.2</taglibs.version><spring.version>4.2.5.RELEASE</spring.version><aspectj.version>1.8.7</aspectj.version><cglib.version>3.2.2</cglib.version>
</properties>
<dependencies><!-- 基本的 Servlet 库文件以及 jstl 文件 start --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${taglibs.version}</version></dependency><!-- 基本的 Servlet 库文件以及 jstl 文件 end   --><!-- Spring 及 Spring-MVC 相关包 start --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>${aspectj.version}</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aspectj.version}</version></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>${cglib.version}</version></dependency><!-- Spring 及 Spring-MVC 相关包 end   -->
</dependencies>

二 为 spring 和 spring-mvc 创建新的配置文件
maven web 项目中默认的配置文件夹为 src/main/resources ,该文件夹下的文件在编译时会直接输出到编译结果中,我们在该文件夹下添加 spring 和 spring-mvc 配置文件,然后通过 j2ee 重要的启动加载配置文件 web.xml 中配置加载 spring 、spring-mvc 及其它配置实现 web 项目运行时加载相关配置。
1 在 src/main/resources 中创建 spring-config.xml 作为 spring 的配置文件。配置文件中主要是定义扫描哪些目录文件实现类注入、如何进行事物执行、如何执行方法的切入执行。在文件头中定义的
  spring 配置文件中主要是定义扫描哪些目录文件实现类注入、如何进行事物执行、如何执行方法的切入执行。在文件头中定义的 xml schema 中需要加入配置文件内容中用户的各种标签命名空间,例如 aop 是做切面的、context 是做上下文及其它配置文件操作的、beans 是做注入的、tx 是做事物控制的等等。
  spring-mvc 配置文件中主要定义 controller 层的注入扫描,web 网站项目中的目录映射等工作。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 扫描类包,将标注spring注解的类自动转化bean,同时完成bean的注入,排除spring mvc的controller,放在spring mvc单独的配置文件中完成 --><context:component-scan base-package="com.binux.webdemo.**"/><!-- 激活自动代理功能--><aop:aspectj-autoproxy expose-proxy="true"/>
</beans>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 扫描类包,将标注spring注解的类自动转化bean,同时完成bean的注入,排除spring mvc的controller --><context:component-scan base-package="com.binux.webdemo.**"/><!-- 声明支持springmvc注解 --><mvc:annotation-driven/><!-- 声明支持jsp.html.css等request请求交于默认servlet处理 --><!-- 当在web.xml 中   DispatcherServlet使用 <url-pattern>/</url-pattern> 映射时,能映射静态资源 --><mvc:default-servlet-handler/><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
</beans>

三 在 web.xml 中加入配置文件并配置监听器和过滤器为 spring 和 spring-mvc

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app><display-name>webdemo</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-config.xml</param-value></context-param><filter><filter-name>Set Character Encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>Set Character Encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener><servlet><servlet-name>spring-mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-mvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring-mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.css</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.gif</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.jpg</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.png</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern></servlet-mapping><welcome-file-list><welcome-file>/default</welcome-file></welcome-file-list>
</web-app>

四 为项目建立相对完整的开发目录
我们采用较为通用的代码分层包实现MVC分层,一般数据库实体类放在 domain 包中、数据库访问类放在 dao 包中、业务代码服务类放在 service 包中、客户端访问处理控制类放在 controller 包中,结合本例中的命名空间,在项目虚拟目录 Java Resources 中创建对应的 java 代码包。此外网页相关的文件都存放在项目 src/main/webapp 文件夹下,该文件夹中 WEB-INF 文件夹中存放 web.xml 文件并且该文件夹中的文件不会被客户端下载,所以很多模板文件都存放在该文件夹下。
1 鼠标右键 src下的 main 目录,添加 java 文件夹和 test 文件夹,这里所做的操作都会反映到 Java Resources 虚拟文件夹下
2 在 java 文件夹下创建 java 代码包
 

|- src|- main|- java|- com.binux.webdemo.domain (数据库实体类)|- com.binux.webdemo.dao (数据处理类)|- com.binux.webdemo.service (服务类)|- com.binux.webdemo.controller (http请求处理类)|- resources (配置文件文件夹)|- webapp|- WEB-INF|- web.xml


五 建立简单的 controller 类验证所有配置运行正常
1 在 com.binux.webdemo.controller 包中新建 test.java 文件并添加响应浏览器请求 http://localhost:8080/webdemo/testresponse 地址的处理方法并作出响应值输出到浏览器。
类文件中需要注意的是几个注解如下:
  @Controller 该注解放在类名上方,表明该类是 spring-mvc 的 controller 类
  @RequestMapping(value = "/testresponse", produces = "application/json;charset=UTF-8") 该注解放在类或者方法上方,是 spring-mvc 中对浏览器等客户端请求的响应路径的注解,value 参数是标注方法响应浏览器给出路径,例如这里的就是 testresponse 路径,produces 是标明浏览器传送的请求是什么数据类型,本例中是指传入的是为json数据请求,如果使用正常的 http 数据传输可以省略这个参数。
  @Autowired 该注解是 spring 的类注入注解,标注后的类实例不需要初始化,因为 spring 会自动注入并初始化,能够注入的类都是在编写该类的时候就作为 spring 的可注入类存在的,要么是专门的注解标注过的类,要么是一些默认可以实现注入的接口等。
  @RequestParam(value = "draw", required = false, defaultValue = "") 该注解在方法参数前定义,用以标注方法中的参数和 http 请求中参数的对应关系以及是否必须提供该参数或者设置参数的默认值, value 参数是 http 中的参数名称, required 参数是控制该参数是否必须提供,defaultValue 参数指如果客户端未传输该参数那么设置成一个默认值。
  @ResponseBody 该注解是指方法向客户端返回的数据将采用 json 格式。
controller 类中如果想实现页面转向,建议让方法执行完毕后使用 ModelAndView 对象,该对象除了可以使用addobject方法向客户端反馈参数外,还可以使用setViewName方法转向其它页面

package com.binux.webdemo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
@RequestMapping("")
public class test {@RequestMapping(value="/testresponse")public ModelAndView testResponse() {ModelAndView mv = new ModelAndView();mv.setViewName("index.jsp");return mv;}
}

2 为了不在编译时验证各种 xml 配置文件中的格式内容而报错,建议在 eclipse 验证属性中取消对 xml 文件的相关验证

3 编译项目并启动项目,然后通过输入  http://localhost:8080/webdemo/testresponse 连接查看是否跳转到 index.jsp 页面并且 输出 “Hello World!”。

转载于:https://my.oschina.net/ioooi/blog/1519470

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_730430.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美国防部公开邀请黑客测试网站安全性

本文讲的是 : 美国防部公开邀请黑客测试网站安全性 , 北京时间3月3日凌晨消息&#xff0c;美国国防部周三称&#xff0c;该部将于下个月邀请外部黑客对其某些公共网站的安全性进行审查测试&#xff0c;这是该部一项试点计划的部分内容&#xff0c;同时也代表着有史以来美国联…

JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

一、fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器&#xff0c;来自阿里巴巴的工程师开发。其主要特点是&#xff1a; ① 快速&#xff1a;fastjson采用独创的算法&#xff0c;将parse的速度提升到极致&#xff0c;超过所有基于Java的json库&#x…

ytkah网站建设解决方案 大中小微企业营销利器

为大中小微企业提供网站设计制作优化服务,PC移动微网站三合一,抢占市场先机。读万卷书不如走万里路&#xff0c;走万里路不如阅人无数。说再多空洞无物不如上案例几簇 优秀案例展示&#xff0c;上市公司人人网旗下游戏《天书奇谈》门户网站&#xff0c;年收入高达5亿&#xff1…

php后端框架 模板,PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题&#xff0c;完全响应式管理&#xff0c;适合从小型移动设备到大型台式机很多的屏幕分辨率。AdminLTE的特点&#xff1a;充分响应可分类的仪表盘18插件和3自定义插件重量轻和快速与大多数主流浏览器兼容完全支持Gly…

独家揭秘影响SEO排名的17项核心因素

大道至简知易行难是SEO行业中容易遇到的一个砍&#xff0c;很多事情看似简单&#xff0c;但是真正下手操作的时候变得思路模糊、操作不当等&#xff0c;很大一部分原因是由于对于SEO核心本质的理解有偏差所造成的。在整个搜索引擎结果排序当中&#xff0c;影响SEO排名的因素众多…

网站相对 绝对路径 html,解惑页面中的相对路径和绝对路径

写在前面&#xff1a;最近做一个前后端结合的项目时&#xff0c;突然发现自己被页面中使用的相对路径搞糊涂了(PS&#xff1a;其实已经不是第一次了。。。之前有一次屡清楚了&#xff0c;但发现又忘记了&#xff0c;瞧我者好记性O(∩_∩)O)。所以我要趁这次好好记一下&#xff…

服务器不稳定网站收录下降,服务器的不稳定,会对搜索引擎优化产生什么影响?...

原标题&#xff1a;服务器的不稳定&#xff0c;会对搜索引擎优化产生什么影响&#xff1f;许多人在选择租赁服务器时&#xff0c;往往忽略了一个特别重要的问题&#xff0c;那就是稳定性&#xff01;服务器租赁是否稳定对于能够做出直接决策的客户以及百度搜索引擎是否喜欢浏览…

SEO实战干货:网页建库与未建库的标准规则!

很多SEO人稍微有点基础就都知道降权这个词语&#xff0c;但是在搜索引擎规范标准指南里面并未提到站点降权一说&#xff0c;严格来讲用建库这个说法更加准确。 首先我们不妨来回顾一下搜索结果排序的过程&#xff0c;从蜘蛛的爬行到蜘蛛的抓取再到网页收录(这里面包括了页面纯收…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.6 营销推广助力提升销量...

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第2章&#xff0c;第2.6节&#xff0c;作者&#xff1a;葛存山 , 耿寿礼&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 营销推广助力提升销量 营销推广包括营销工具、营…

外链应该这样发,网站排名速度提升十陪

说起发外链工作几乎是每个SEO人员都发过&#xff0c;但是比较蛋疼的是外链应该如何发&#xff0c;怎么发才有效&#xff0c;又该怎样发不会导致网站降权&#xff0c;不发又不行因为外链建设是网站外部优化的一个非常重要的环节&#xff0c;外链发布的质量直接影响着咱们SEO工作…

计算机视觉(图像处理)相关的比较全面的好网站

计算机视觉在生活和工业应用等领域越来越广泛。在科学研究中&#xff0c;常常需要借鉴和参考巨人的IDEA和资料&#xff0c;这里总结了一些常用的网站供大家参考&#xff0c;世界很大&#xff0c;这只是小部分。如果你有什么补充&#xff0c;发email给我&#xff0c;补充。 htt…

Nginx主配置参数详解,Nginx配置网站

阅读目录 1.Niginx主配置文件参数详解2.Nginx.conf配置文件详细说明(附备注)3.Nginx代理网站回到顶部1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx。博文地址为&#xff1a;http://www.cnblogs.com/hanyinglong/p/5102141.html b.当Nginx安装完毕后&#xff0…

让你不再恋家的9款小众时尚的酒店网站设计

2019独角兽企业重金招聘Python工程师标准>>> 一场说走就走的旅行少不了一家精挑细选的酒店。出门在外&#xff0c;没有一个舒适的住处&#xff0c;恐怕旅行的记忆也并不是那么美好。大牌酒店住不起&#xff0c;小众酒店性价比高&#xff0c;但哪家最合适&#xff1f…

我的网站搭建 (第十五天) 用户注册与登录

2019独角兽企业重金招聘Python工程师标准>>> 这几天正好学了Flask的用户注册登录功能设计&#xff0c;发现与Django的使用特别类似&#xff0c;所以学习Flask的同时也加强了我对Django表单的印象。正好网站搭建也差不多更新到用户操作部分了&#xff0c;就索性把Dja…

Html代码seo优化最佳布局实例讲解

2019独角兽企业重金招聘Python工程师标准>>> Html代码seo优化最佳布局实例讲解 搜索引擎对html代码是非常优化的&#xff0c;所以html的优化是做好推广的第一步。一个符合seo规则的代码大体如下界面所示。 1、<!–木庄网络博客–> 这个东西是些页面注释的&am…

大型互联网站解决海量数据的常见策略

文章来源&#xff1a;http://www.javabloger.com/article/big-data-architecture.html 大型互联网站的数据存储与传统存储环境相比不仅是一个服务器、一个数据库那么简单&#xff0c;而是由网络设备、存储设备、应用服务器、公用访问接口、应用程序 等多个部分组成的复杂系统。…

大型网站架构系列:电商网站架构案例(转)

转载地址&#xff1a; http://www.aboutyun.com/thread-17407-1-1.html问题导读&#xff1a;1、电商网站考虑的客户需求有哪些&#xff1f;2、网站架构如何演变的&#xff1f;3、电商架构优化需考虑哪些内容&#xff1f;大型网站架构是一个系列文档&#xff0c;欢迎大家关注。本…

thinkphp5项目--企业单车网站(一)

thinkphp5项目--企业单车网站&#xff08;一&#xff09; 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps://github.com/fry404006308/BicycleEnterpriseWebsite 一、命名空间 二、 模板页面后缀配置 三、 输出替换 使用 四、 视图实例化 1…

免费学编程!10个全球顶尖的编程在线自学网站

编者按&#xff1a;现在会编程的设计师越来越多了&#xff0c;想跟上时代的同学&#xff0c;来看今天推荐的这10个网站&#xff0c;不仅有大量免费的编程语言课程&#xff0c;还有很多实战项目供你练习。更重要的是&#xff0c;它的教学方式都是针对零基础的&#xff0c;很容易…

43.Odoo产品分析 (四) – 工具板块(11) – 网站即时聊天(1)

查看Odoo产品分析系列—-目录 在线聊天可以实现与顾客的在线实时交流&#xff0c;比如在"商店"功能中实现顾客对客服的商品咨询等类似的操作。 安装"网站即时聊天"模块&#xff1a; 1 网站在线客服 点击创建&#xff0c;新建一个客服&#xff0c;该表单对…