一、项目说明
本项目使用spring springmvc mongodb maven boostrap 整合的一个demo,欢迎大家预览,不足之处还请谅解。
二、项目结构如图
三、XML配置如下
3.1 pom.xml 配置文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.motoon</groupId>
<artifactId>SSMongoDB</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>SSMongoDB Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.data.mongodb>1.9.2.RELEASE</spring.data.mongodb>
<mongodb.java.driver>3.2.2</mongodb.java.driver>
<fastjson.version>1.2.3</fastjson.version>
<spring.version>4.2.6.RELEASE</spring.version>
<jackson.version>2.7.0</jackson.version>
</properties>
<!--junit -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--mongodb -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>${mongodb.java.driver}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>${spring.data.mongodb}</version>
</dependency>
<!--spring -->
<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>
<!-- commons-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<!-- json -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!--jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--servlet -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
<build>
<finalName>SSMongoDB</finalName>
</build>
</project>
3.2 spring-context.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd"> <mongo:mongo host="127.0.0.1" port="27017"/> <bean class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongo"/> <constructor-arg name="databaseName" value="ssmongodb"/> </bean> </beans>
3.3 spring-mvc.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
<!-- 自动扫描mongodb包下的所有类,如果@Controller注入为bean -->
<context:component-scan base-package="com.mongodb" />
<!-- 静态资源默认servlet配置 -->
<mvc:default-servlet-handler/>
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- json转换器 -->
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/views/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置多文件上传 -->
<!-- <bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
<property name="maxUploadSize">
<!– 上传文件大小限制为31M,31*1024*1024 –>
<value>32505856</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg>
<value>UTF-8</value>
</constructor-arg>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
</beans>
3.4 web.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Archetype Created Web Application</display-name>
<!--spring上下文监听器-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-context.xml</param-value> </context-param>
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- springmvc控制转发器-->
<!-- 自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为<servlet-name>+"-servlet.xml" -->
<servlet>
<servlet-name>SSMongoDB</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SSMongoDB</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--配置session超时时间 -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
四、java 代码
4.1 User.java 代码
package com.mongodb.pojo; import java.io.Serializable; /** * @author rjsong * @create 2018-02-22 17:54 */ public class User implements Serializable{ private static final long serialVersionUID = 1L; private String userId; private String userName; private String password; private String phone; private String sex; private String status; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } }
4.2 IUserDao.java 代码
package com.mongodb.dao; import com.mongodb.pojo.User; import java.util.List; /** * @author rjsong * @create 2018-02-22 18:00 */ public interface IUserDao { void add(User user); void delete(String userId); void update(User user); User selectUserById(String userId); List<User> getUserList(); User selectUserByName(String username); List<User> selectUserByConditions(String conditions); void freezeUser(String userId); void unfreezeUser(String userId); }
4.3 UserDaoImpl.java 代码
package com.mongodb.dao; import com.mongodb.pojo.User; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.util.List; /** * @author rjsong * @create 2018-02-22 18:04 */ @Repository public class UserDaoImpl implements IUserDao { @Resource private MongoTemplate mongoTemplate; public void add(User user) { this.mongoTemplate.save(user,"t_user"); } public void delete(String userId) { this.mongoTemplate.remove(new Query(Criteria.where("userId").is(userId)), User.class, "t_user"); } public void update(User user) { Query query = new Query(); query.addCriteria(Criteria.where("userId").is(user.getUserId())); Update update = new Update(); update.set("userName",user.getUserName()); update.set("password",user.getPassword()); update.set("sex",user.getSex()); update.set("phone",user.getPhone()); mongoTemplate.updateFirst(query,update,User.class,"t_user"); } public User selectUserById(String userId) { return mongoTemplate.findOne(new Query(Criteria.where("userId").is(userId)), User.class,"t_user"); } public List<User> getUserList() { return mongoTemplate.find(new Query(),User.class,"t_user"); } public User selectUserByName(String username) { //is 为精确匹配,regex 为模糊匹配 return mongoTemplate.findOne(new Query(Criteria.where("userName").is(username)),User.class,"t_user"); } //多条件查询 public List<User> selectUserByConditions(String conditions) { Criteria criteria = new Criteria(); criteria.orOperator(Criteria.where("userName").regex(conditions),Criteria.where("userId").is(conditions)); Query query = new Query(criteria); return mongoTemplate.find(query,User.class,"t_user"); } //停用用户 public void freezeUser(String userId) { Query query = new Query(); query.addCriteria(Criteria.where("userId").is(userId)); Update update = new Update(); update.set("status","已停用"); mongoTemplate.updateFirst(query,update,User.class,"t_user"); } //启用用户 public void unfreezeUser(String userId) { Query query = new Query(); query.addCriteria(Criteria.where("userId").is(userId)); Update update = new Update(); update.set("status","已启用"); mongoTemplate.updateFirst(query,update,User.class,"t_user"); } }
4.4 IUserService.java 代码
package com.mongodb.service; import com.mongodb.pojo.User; import java.util.List; public interface IUserService { void insert(User user); void remove(String userId); void modify(User user); User findUserById(String userId); List<User> findUserList(); User findUserByName(String username); List<User> findUserByConditions(String conditions); void freezeUser(String userId); void unfreezeUser(String userId); }
4.5 UserService.java 代码
package com.mongodb.service; import com.mongodb.dao.IUserDao; import com.mongodb.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * @author rjsong * @create 2018-02-22 18:17 */ @Service public class UserServiceImpl implements IUserService { @Autowired private IUserDao userDao; public void insert(User user) { userDao.add(user); } public void remove(String userId) { userDao.delete(userId); } public void modify(User user) { userDao.update(user);} public User findUserById(String userId) { return userDao.selectUserById(userId); } public List<User> findUserList() { return userDao.getUserList(); } public User findUserByName(String username) { return userDao.selectUserByName(username); } public List<User> findUserByConditions(String conditions) { return userDao.selectUserByConditions(conditions); } public void freezeUser(String userId) { userDao.freezeUser(userId); } public void unfreezeUser(String userId) { userDao.unfreezeUser(userId); } }
4.6 UserController.java 代码
package com.mongodb.controller; import com.mongodb.pojo.User; import com.mongodb.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * @author rjsong * @create 2018-02-22 18:21 */ @Controller public class UserController { @Autowired private IUserService userService; //登陆功能 @RequestMapping("/login") public String login(HttpServletRequest request, Model model){ String username = request.getParameter("userName"); String password = request.getParameter("password"); if (username != null){ User u = userService.findUserByName(username); if (u != null){ if (u.getUserName().equals(username)&&u.getPassword().equals(password)&&"已启用".equals(u.getStatus())){ return "forward:getUserList"; }else{ return "login"; } }else{ return "login"; } }else{ return "login"; } } //注册 @RequestMapping("/sign_in") public String register(User user){ long time = System.currentTimeMillis(); String userid = time+""; user.setUserId(userid); user.setStatus("已启用"); userService.insert(user); return "login"; } //获取用户列表 @RequestMapping("/getUserList") public String getUserList(Model model){ List<User> userList = userService.findUserList(); model.addAttribute("userList",userList); return "list"; } //添加用户 @RequestMapping("/saveUser") public String saveUser(Model model,User user){ long time = System.currentTimeMillis(); String userid = time+""; user.setUserId(userid); user.setStatus("已启用"); userService.insert(user); return "forward:getUserList"; } //删除用户 @RequestMapping("/delete") public String remove(Model model,HttpServletRequest request){ String userId = request.getParameter("userId"); userService.remove(userId); return "forward:getUserList"; } //更新用户信息 @RequestMapping("/updateUser") public String mofifyUser(Model model,HttpServletRequest request,User user){ userService.modify(user); return "forward:getUserList"; } //多条件查询 @RequestMapping("/selectConditions") public String findUsersByConditions(HttpServletRequest request,Model model){ String conditions = request.getParameter("conditions"); List<User> userList = userService.findUserByConditions(conditions); model.addAttribute("userList",userList); return "list"; } //根据Id查询用户 @RequestMapping("/findUser") public String findUserById(HttpServletRequest request,Model model){ String userId = request.getParameter("userId"); User user = userService.findUserById(userId); request.getSession().setAttribute("user",user); return "update"; } //停用用户 @RequestMapping("/freezeUser") public String freezeUser(HttpServletRequest request){ String userId = request.getParameter("userId"); userService.freezeUser(userId); return "forward:getUserList"; } //启用用户 @RequestMapping("/unfreezeUser") public String unfreezeUser(HttpServletRequest request){ String userId = request.getParameter("userId"); userService.unfreezeUser(userId); return "forward:getUserList"; } }
五、jsp 代码
5.1 index.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<title>首页</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
</head>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>欢迎来到首页</h2>
<hr/>
<div class="container" style="margin-top: 50px;text-align: center;font-size: 18px" >
欢迎 <a href="${pageContext.request.contextPath}/views/register.jsp" >注册</a>
<a href="${pageContext.request.contextPath}/views/login.jsp" >登陆</a>
</div>
</body>
</html>
5.2 add.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<title>添加</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>添加页面</h2>
<hr/>
<div class="container" style="margin-top: 50px">
<form class="form-horizontal" role="form" action="${pageContext.request.contextPath}/saveUser" method="post">
<div class="form-group">
<label for="userName" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="userName" name="userName"
placeholder="请输入用户名">
</div>
</div>
<div class="form-group">
<label for="pwd" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="pwd" name="password"
placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">性别</label>
<div class="col-sm-10">
<input type="radio" name="sex" value="男" checked> 男
<input type="radio" name="sex" value="女"> 女
</div>
</div>
<div class="form-group">
<label for="phone" class="col-sm-2 control-label">手机号码</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="phone" name="phone"
placeholder="请输入手机号码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">确定</button>
<button type="reset" class="btn btn-primary">取消</button>
</div>
</div>
</form>
</div>
</body>
</html>
5.3 list.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<title>用户列表</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery-3.2.1.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>用户列表</h2>
<hr/>
<div style="height:60px;line-height: 60px">
<form action="${pageContext.request.contextPath}/selectConditions" method="post">
<div style="margin-left: 50px" >
<div class="col-sm-2">
<input type="text" name="conditions" class="form-control" placeholder="请输入用户名或编号">
</div>
<div class="col-sm-2">
<input type="submit" name="find" class="btn btn-primary" value="搜索">
</div>
</div>
</form>
</div>
<hr>
<div class="container" style="margin-top: 50px">
<table class="table table-bordered">
<thead>
<tr class="text-c" style="text-align: center">
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>手机号码</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="u">
<tr class="text-c" style="text-align: center">
<td>${u.userId}</td>
<td>${u.userName}</td>
<td>${u.password}</td>
<td>${u.sex}</td>
<td>${u.phone}</td>
<td>${u.status}</td>
<td>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/findUser?userId=${u.userId}" >修改</a>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/delete?userId=${u.userId}" οnclick="return del();">删除</a>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/views/add.jsp" >添加</a>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/unfreezeUser?userId=${u.userId}" >启用</a>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/freezeUser?userId=${u.userId}" >停用</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
<script>
function del() {
if (confirm("确定要删除吗?")){
return true;
}else {
return false;
}
}
</script>
</html>
5.4 login.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<title>登陆</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>登录页面</h2>
<hr/>
<div class="container" style="margin-top: 50px">
<form class="form-horizontal" role="form" action="${pageContext.request.contextPath}/login" method="post">
<div class="form-group">
<label for="userName" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="userName" name="userName"
placeholder="请输入用户名">
</div>
</div>
<div class="form-group">
<label for="pwd" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="pwd" name="password"
placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox"> 请记住我
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">确定</button>
<button type="reset" class="btn btn-primary">取消</button>
</div>
</div>
</form>
</div>
</body>
</html>
5.5 register.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注册</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
</head>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>注册页面</h2>
<hr/>
<div class="container" style="margin-top: 50px">
<form class="form-horizontal" role="form" id="signupForm" action="${pageContext.request.contextPath}/sign_in" method="post">
<div class="form-group">
<label for="userName" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="userName" name="userName"
placeholder="请输入用户名" >
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" name="password"
placeholder="请输入密码" >
</div>
</div>
<div class="form-group">
<label for="repassword" class="col-sm-2 control-label">重复密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="repassword" name="repassword"
placeholder="请重新输入密码" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">性别</label>
<div class="col-sm-10">
<input type="radio" name="sex" value="男" checked> 男
<input type="radio" name="sex" value="女"> 女
</div>
</div>
<div class="form-group">
<label for="phone" class="col-sm-2 control-label">手机号码</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="phone" name="phone"
placeholder="请输入手机号码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-success" οnclick=" return check()">确定</button>
<button type="reset" class="btn btn-success">取消</button>
</div>
</div>
</form>
</div>
</body>
<script >
function check() {
var username = document.getElementById("userName").value;
var pwd1 = document.getElementById("password").value;
var pwd2 = document.getElementById("repassword").value;
if (username ==""||username == null){
alert("用户名不能为空");
return false;
}else if (username.length<2){
alert("用户名长度至少为2位");
return false;
}
if (pwd1=="" || pwd1==null || pwd2=="" ||pwd2 == null){
alert("密码不能为空");
return false;
}else if (pwd1 != pwd2){
alert("两次输入密码不一致");
return false;
}
}
</script>
</html>
5.6 update.jsp 代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<html>
<head>
<meta charset="utf-8">
<title>修改</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
<style type="text/css">
body h2{
text-align: center;
color: red;
}
</style>
</head>
<body>
<h2>修改页面</h2>
<hr/>
<div class="container" style="margin-top: 50px">
<form class="form-horizontal" role="form" action="${pageContext.request.contextPath}/updateUser" method="post">
<div class="form-group">
<div class="col-sm-10">
<input type="hidden" class="form-control" id="userId" name="userId" value="${user.userId}">
</div>
</div>
<div class="form-group">
<label for="userName" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="userName" name="userName" value="${user.userName}">
</div>
</div>
<div class="form-group">
<label for="pwd" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="pwd" name="password" value="${user.password}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">性别</label>
<div class="col-sm-10">
<input type="radio" name="sex" value="男" <c:if test="${user.sex eq '男' }" >checked</c:if> />男
<input type="radio" name="sex" value="女" <c:if test="${user.sex eq '女' }" >checked</c:if> />女
</div>
</div>
<div class="form-group">
<label for="phone" class="col-sm-2 control-label">手机号码</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="phone" name="phone" value="${user.phone}">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">确定</button>
<button type="reset" class="btn btn-primary">取消</button>
</div>
</div>
</form>
</div>
</body>
</html>