您的位置:首页 > 编程语言 > Java开发

spring MVC第一阶段总结

2016-02-05 11:00 609 查看
<span style="font-family: 微软雅黑; text-align: -webkit-auto; background-color: rgb(255, 255, 255);">一、配置文件</span>
1.web.xml文件配置(主要功能为了找到指定的spring mvc 模式)
 <!-- 配置DispatcherServlet --><servlet ><servlet-name >springDispatcherServlet</ servlet-name>< servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class><!-- 配置DispatcherServlet初始化参数:SpringMVC配置文件的位置和名称 --><!-- 也可以不通过 contextConfigLocation来配置SpringMVC文件,采用默认的方式:/WEB-INF/目录下采用<servlet-name>. xml的形式需要注意的是名称一定为<servlet-name>--><init-param ><param-name> contextConfigLocation</param-name ><param-value> classpath:springmvc.xml</param-value ></init-param ><load-on-startup >1</ load-on-startup></servlet ><servlet-mapping ><servlet-name >springDispatcherServlet</ servlet-name><url-pattern >/</ url-pattern></servlet-mapping >
2.spring-mvc.xml文件(主要功能:引入相应文件,配置beans以及spring mvc功能文件)
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd" ><!-- 配置自定义扫描的包 --><context:component-scan base-package="com.campus.controller" ></context:component-scan><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" ><property name="prefix" value="/WEB-INF/jsp/"></ property><property name="suffix" value=".jsp"></ property></bean>
[align=left]3.配置jdbctemplate文件[/align][align=left]a. db.properties文件[/align][align=left]jdbc.driverClass=com.mysql.jdbc.Driver[/align][align=left]jdbc.jdbcUrl=jdbc:mysql://localhost:3306/campus[/align][align=left]jdbc.user=root[/align][align=left]jdbc.password=root[/align][align=left]jdbc.initPoolSize=5[/align][align=left]jdbc.maxPoolSize=10[/align][align=left]b.applicationContext.xml文件[/align]
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" ><context:property-placeholder location= "classpath:db.properties" /><!-- 配置c3p0数据源 --><bean id= "dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" ><property name="user" value="${jdbc.user}"></ property><property name="password" value="${jdbc.password}" ></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></ property><property name="initialPoolSize" value="${jdbc.initPoolSize}" ></property><property name="maxPoolSize" value="${jdbc.maxPoolSize}" ></property><property name="driverClass" value="${jdbc.driverClass}" ></property></bean><!-- 配置Spring的Jdbctemplate --><bean id= "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" ><property name="dataSource" ref="dataSource"></ property></bean></beans>
[align=left]二、后台文件编写[/align][align=left]1.bean文件,User.java[/align]
 public class User {private String userName ;             //用户姓名private String userPassword ;  //用户密码private String userEmail ;            //用户邮箱private String userBirthday ;  //用户生日private String userDescription ;     //用户描述private String userAge ;              //用户年龄private String userStudentId ; //用户学号public String getUserAge() {return userAge ;}public void setUserAge(String userAge) {this.userAge = userAge;}public String getUserStudentId() {return userStudentId ;}public void setUserStudentId(String userStudentId) {this.userStudentId = userStudentId;}public String getUserName() {return userName ;}public void setUserName(String userName) {this.userName = userName;}public String getUserPassword() {return userPassword ;}public void setUserPassword(String userPassword) {this.userPassword = userPassword;}public String getUserEmail() {return userEmail ;}public void setUserEmail(String userEmail) {this.userEmail = userEmail;}public String getUserBrithday() {return userBirthday ;}public void setUserBrithday(String userBirthday) {this.userBirthday = userBirthday;}public String getUserDescription() {return userDescription ;}public void setUserDescription(String userDescription) {this.userDescription = userDescription;}}
2.DAO层文件UserDao.javapublic interface UserDao {//用户添加public void UserAdd(HttpServletRequest request);//查询用户名和密码public  List<User> UserQueryByName(String userName,String userPassword);}UserDaoImp.javapublic class UserDaoImp extends AbstractDao implements UserDao {private ApplicationContext ctx =null;private JdbcTemplate jdbcTemplate ;{ctx=new ClassPathXmlApplicationContext("applicationContext.xml" );jdbcTemplate=(JdbcTemplate) ctx .getBean("jdbcTemplate");}public void testDataSource() throws SQLException{DataSource dataSource= ctx.getBean(DataSource.class);System. out.println(dataSource.getConnection());}// 接收表单数据,此方法很烂,可以优化为表单封装,需要向别人请教@Overridepublic void UserAdd(HttpServletRequest request) {String userName=request.getParameter( "userName");String userPassword=request.getParameter( "userPassword");String userEmail=request.getParameter( "userEmail");String userAge=request.getParameter( "userAge");String userBirthday=request.getParameter( "userBirthday");String userStudentId=request.getParameter( "userStudentId");String userDescription=request.getParameter("userDescription" );jdbcTemplate.update(USER_ADD, userName,userPassword,userEmail,userBirthday,userDescription,userAge,userStudentId);}//查询用户名和密码@Overridepublic  List<User> UserQueryByName(String userName,String userPassword){RowMapper<User> rowMapper= new BeanPropertyRowMapper<User>(User.class);List<User> user= jdbcTemplate.query(USER_QUERY_USER, rowMapper, userName,userPassword);//System.out.println(student);return user;}3.service层文件UserService.javapublic interface UserService {//添加用户public void addUser(HttpServletRequest request);//验证用户public int checkUser(HttpServletRequest request);}UserService.javapublic class UserServiceImp implements UserService{@Overridepublic void addUser(HttpServletRequest request) {// 添加用户接口实现UserDaoImp userDaoImp= new UserDaoImp();userDaoImp.UserAdd(request );}//验证用户@Overridepublic int checkUser(HttpServletRequest request) {// TODO Auto-generated method stubString userName=request.getParameter( "userName");String userPassword=request.getParameter( "userPassword");List<User> user= new ArrayList<User>();UserDaoImp userDaoImp= new UserDaoImp();user=userDaoImp.UserQueryByName(userName, userPassword);if(user==null){return 0;} else{return 1;}}}3.控制层文件handlers.java@Controllerpublic class Handles {//添加用户@RequestMapping(value="/adduser" ,method=RequestMethod.POST)public String addUser(HttpServletRequest request){UserServiceImp userServiceImp = new UserServiceImp();userServiceImp.addUser( request);return "login" ;}//判断用户登录@RequestMapping(value="/checkUser" ,method=RequestMethod.POST)public String  checkUser(HttpServletRequest request){UserServiceImp userServiceImp = new UserServiceImp();if(userServiceImp.checkUser(request)==0){return "login" ;} else{return "index" ;}}}
4.jsp文件login.jsp<form action="checkUser" method="post">用户名: <input type="text" name="username" /><br/>密    码:< input type ="password" name="password" /><br /><input type="submit" value="登录"/></form>register.jsp<form action="adduser" method="post"><table><tr><td> 姓名:</td ><td>< input type ="text" name="userName" /></td ></tr><tr><td> 学号:</td ><td>< input type ="text" name="userStudentId" /></td ></tr><tr><td> 密码:</td ><td>< input type ="password" name="userPassword" /></td ><tr/><tr><td> 邮箱:</td ><td>< input type ="text" name="userEmail" /></td ><tr/><tr><td> 出生日期:</td ><td>< input type ="text" name="userBirthday" /></td><tr/><tr><td> 个人描述:</td ><td>< input type ="text" name="userDescription" /></td ><tr/><tr><td> 年龄:</td ><td>< input type ="text" name="userAge" /></td ><tr/><tr><td>< input type ="submit" value="注册" /><input type="reset" value="重置" /></td></tr></table>index.jspthis is index.
[align=left]三、spring mvc工作流程及相关代码说明[/align][align=left]1.当有url请求时,首先通过web.xml文件判断根据<url-pattern > /</ url-pattern >和< param-value> classpath:springmvc.xml </param-value >标签对判断放行允许的url,找到springMVC的配置文件springmvc.xml。[/align][align=left]2.在springmvc的配置文件中首先找到默认扫描包,根据请求的url找到handlers.java中的相应方法。[/align][align=left]3.在handlers中@Controller用来标识类为控制器,@RequestMapping("??")用来映射函数方法对应的url路径。[/align][align=left]4.在上述代码中,USER_ADD,USER_QUERY_USER为定义的静态值[/align]public static final String USER_QUERY_USER= "selectuserName,userPassword from t_user where userName=? and userPassword=?";public static final String USER_ADD= "insertinto t_user (userName,userPassword,userEmail,userBirthday,userDescription,userAge,userStudentId)value(?,?,?,?,?,?,?)";[align=left]5.有待改进处为表单的封装,本文使用方法过于粗暴,不能灵活应对改变。[/align][align=left]6.注意lib文件夹下的jar包必须导入。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: