SSM框架整合
Spring
SpringMVC
MyBatis
导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspectweaver----AspectJ框架 6, log4j-----打印日志信息 7, ojdbc6.jar 8, jstl.jar, standard.jar----标准标签库 9, commons-logging-1.2.jar
src下建立包结构
配置web.xml,spring-mvc.xml,spring-all.xml
建立表结构,使用PowerDesigner
前台页面,后台方法等。
项目结构:
代码(引用,未完全实现):
配置文件:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5 id="WebApp_ID" version="3.0">
6
7 <!-- 告诉web容器log4j的属性文件所在位置 -->
8 <context-param>
9 <param-name>log4jConfigLocation</param-name>
10 <param-value>classpath:conf/log4j.properties</param-value>
11 </context-param>
12 <listener>
13 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
14 </listener>
15
16 <!-- spring框架提供的字符编码过滤器 -->
17 <filter>
18 <filter-name>characterEncodingFilter</filter-name>
19 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
20 <init-param>
21 <param-name>encoding</param-name>
22 <param-value>UTF-8</param-value>
23 </init-param>
24 <init-param>
25 <param-name>forceEncoding</param-name>
26 <param-value>true</param-value>
27 </init-param>
28 </filter>
29 <filter-mapping>
30 <filter-name>characterEncodingFilter</filter-name>
31 <url-pattern>/*</url-pattern>
32 </filter-mapping>
33
34 <!-- 加载Spring的配置文件 -->
35 <context-param>
36 <param-name>contextConfigLocation</param-name>
37 <param-value>classpath:conf/spring-config.xml</param-value>
38 </context-param>
39 <listener>
40 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
41 </listener>
42
43 <!-- 加载SpringMVC的配置文件 -->
44 <servlet>
45 <servlet-name>springDispatcherServlet</servlet-name>
46 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
47 <init-param>
48 <param-name>contextConfigLocation</param-name>
49 <param-value>classpath:conf/spring-mvc.xml</param-value>
50 </init-param>
51 <load-on-startup>1</load-on-startup>
52 </servlet>
53 <servlet-mapping>
54 <servlet-name>springDispatcherServlet</servlet-name>
55 <url-pattern>*.do</url-pattern>
56 </servlet-mapping>
57 </web-app>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5 id="WebApp_ID" version="3.0">
6
7 <!-- 告诉web容器log4j的属性文件所在位置 -->
8 <context-param>
9 <param-name>log4jConfigLocation</param-name>
10 <param-value>classpath:conf/log4j.properties</param-value>
11 </context-param>
12 <listener>
13 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
14 </listener>
15
16 <!-- spring框架提供的字符编码过滤器 -->
17 <filter>
18 <filter-name>characterEncodingFilter</filter-name>
19 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
20 <init-param>
21 <param-name>encoding</param-name>
22 <param-value>UTF-8</param-value>
23 </init-param>
24 <init-param>
25 <param-name>forceEncoding</param-name>
26 <param-value>true</param-value>
27 </init-param>
28 </filter>
29 <filter-mapping>
30 <filter-name>characterEncodingFilter</filter-name>
31 <url-pattern>/*</url-pattern>
32 </filter-mapping>
33
34 <!-- 加载Spring的配置文件 -->
35 <context-param>
36 <param-name>contextConfigLocation</param-name>
37 <param-value>classpath:conf/spring-config.xml</param-value>
38 </context-param>
39 <listener>
40 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
41 </listener>
42
43 <!-- 加载SpringMVC的配置文件 -->
44 <servlet>
45 <servlet-name>springDispatcherServlet</servlet-name>
46 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
47 <init-param>
48 <param-name>contextConfigLocation</param-name>
49 <param-value>classpath:conf/spring-mvc.xml</param-value>
50 </init-param>
51 <load-on-startup>1</load-on-startup>
52 </servlet>
53 <servlet-mapping>
54 <servlet-name>springDispatcherServlet</servlet-name>
55 <url-pattern>*.do</url-pattern>
56 </servlet-mapping>
57 </web-app>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xmlns:mvc="http://www.springframework.org/schema/mvc"
6 xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
7 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
9
10 <!-- 配置扫描器 -->
11 <context:component-scan base-package="com.hanqi.controller" />
12
13 <!-- 配置视图解析器 -->
14 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
15 <!-- <property name="prefix" value="/WEB-INF/"></property> -->
16 <property name="prefix" value="/"></property>
17 <property name="suffix" value=".jsp"></property>
18 </bean>
19
20 <!-- 上传文件的解析器 -->
21 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
22 <!-- 上传文件的总大小, 单位是b -->
23 <property name="maxUploadSize" value="10240000"></property>
24 <!-- 单个文件的上传大小限制, 单位是b -->
25 <property name="maxUploadSizePerFile" value="1000000"></property>
26 <!-- 默认字符集 -->
27 <property name="defaultEncoding" value="utf-8"></property>
28 </bean>
29
30 <!-- 开启SpringMVC注解驱动 -->
31 <mvc:annotation-driven>
32 <!-- 改成false, 原因是在spring中默认使用的json格式的转换器是Jackson.jar中的转换器, 但实际开发中更受欢迎的是fastjson.jar -->
33 <mvc:message-converters register-defaults="false">
34 <bean class="org.springframework.http.converter.StringHttpMessageConverter" />
35 <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
36 <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" />
37 <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
38 <bean id="fastJsonHttpMessagerConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
39 <!-- 设置支持的媒体类型 -->
40 <property name="supportedMediaTypes">
41 <list>
42 <value>text/html; charset=utf-8</value>
43 <value>application/json; charset=utf-8</value>
44 </list>
45 </property>
46 </bean>
47 </mvc:message-converters>
48 </mvc:annotation-driven>
49 </beans>
src下:
model层实体类:
1 package com.hanqi.model;
2
3 public class SrUserRole {
4 private Integer id;
5 private Integer userid;
6 private Integer roleid;
7
8 public SrUserRole() {
9 super();
10 }
11
12 public SrUserRole(Integer id, Integer userid, Integer roleid) {
13 super();
14 this.id = id;
15 this.userid = userid;
16 this.roleid = roleid;
17 }
18
19 public Integer getId() {
20 return id;
21 }
22
23 public void setId(Integer id) {
24 this.id = id;
25 }
26
27 public Integer getUserid() {
28 return userid;
29 }
30
31 public void setUserid(Integer userid) {
32 this.userid = userid;
33 }
34
35 public Integer getRoleid() {
36 return roleid;
37 }
38
39 public void setRoleid(Integer roleid) {
40 this.roleid = roleid;
41 }
42 }
1 package com.hanqi.model;
2
3 public class SrRoleMenu {
4 private Integer id;
5 private Integer roleid;
6 private Integer menuid;
7
8 public SrRoleMenu(Integer id, Integer roleid, Integer menuid) {
9 super();
10 this.id = id;
11 this.roleid = roleid;
12 this.menuid = menuid;
13 }
14
15 public SrRoleMenu() {
16 super();
17 }
18
19 public Integer getId() {
20 return id;
21 }
22
23 public void setId(Integer id) {
24 this.id = id;
25 }
26
27 public Integer getRoleid() {
28 return roleid;
29 }
30
31 public void setRoleid(Integer roleid) {
32 this.roleid = roleid;
33 }
34
35 public Integer getMenuid() {
36 return menuid;
37 }
38
39 public void setMenuid(Integer menuid) {
40 this.menuid = menuid;
41 }
42 }
1 package com.hanqi.model;
2
3 public class SrRole {
4 private Integer id;
5 private String rolename;
6 private String status;
7 private boolean checked;
8
9 public SrRole() {
10 super();
11 }
12
13 public SrRole(Integer id, String rolename, String status) {
14 super();
15 this.id = id;
16 this.rolename = rolename;
17 this.status = status;
18 }
19
20 public Integer getId() {
21 return id;
22 }
23
24 public void setId(Integer id) {
25 this.id = id;
26 }
27
28 public String getRolename() {
29 return rolename;
30 }
31
32 public void setRolename(String rolename) {
33 this.rolename = rolename;
34 }
35
36 public String getStatus() {
37 return status;
38 }
39
40 public void setStatus(String status) {
41 this.status = status;
42 }
43
44 public boolean getChecked() {
45 return checked;
46 }
47
48 public void setChecked(boolean checked) {
49 this.checked = checked;
50 }
51 }
1 package com.hanqi.model;
2
3 public class SrMenu {
4 private Integer id;
5 private String menuname;
6 private String url;
7 private String icon;
8 private String status;
9 private Integer parentid;
10
11 public SrMenu() {
12 super();
13 }
14
15 public SrMenu(Integer id, String menuname, String url, String icon, String status) {
16 super();
17 this.id = id;
18 this.menuname = menuname;
19 this.url = url;
20 this.icon = icon;
21 this.status = status;
22 }
23
24 public Integer getId() {
25 return id;
26 }
27
28 public void setId(Integer id) {
29 this.id = id;
30 }
31
32 public String getMenuname() {
33 return menuname;
34 }
35
36 public void setMenuname(String menuname) {
37 this.menuname = menuname;
38 }
39
40 public String getUrl() {
41 return url;
42 }
43
44 public void setUrl(String url) {
45 this.url = url;
46 }
47
48 public String getIcon() {
49 return icon;
50 }
51
52 public void setIcon(String icon) {
53 this.icon = icon;
54 }
55
56 public String getStatus() {
57 return status;
58 }
59
60 public void setStatus(String status) {
61 this.status = status;
62 }
63
64 public Integer getParentid() {
65 return parentid;
66 }
67
68 public void setParentid(Integer parentid) {
69 this.parentid = parentid;
70 }
71 }
dao层接口:
1 package com.hanqi.dao;
2
3 import java.util.List;
4
5 import com.hanqi.model.SrUser;
6
7 public interface SrUserDao {
8
9 SrUser login(SrUser srUser);
10
11 int insertSrUser(SrUser srUser);
12
13 List<SrUser> selectAll();
14
15 }
1 package com.hanqi.dao;
2
3 import java.util.List;
4
5 import com.hanqi.model.SrRole;
6
7 public interface SrRoleDao {
8
9 List<SrRole> selectAllRoles(String userid);
10
11 List<SrRole> selectAll();
12
13 }
1 package com.hanqi.dao;
2
3 import java.util.List;
4
5 import com.hanqi.model.SrMenu;
6 import com.hanqi.model.SrUser;
7
8 public interface SrMenuDao {
9
10 List<SrMenu> selectMenus(SrUser currentUser);
11
12 }
dao层实现方法:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <mapper namespace="com.hanqi.dao.SrUserDao">
6
7 <select id="login" parameterType="SrUser" resultType="SrUser">
8 select * from Sr_User s
9 <where>
10 s.username=#{username} and s.password=#{password}
11 </where>
12 </select>
13
14 <select id="selectAll" resultType="SrUser">
15 select * from sr_user
16 </select>
17
18 <insert id="insertSrUser" parameterType="SrUser">
19 insert into sr_user values
20 (testsq.nextval, #{username}, #{password}, #{realname}, #{status}, null)
21 </insert>
22 </mapper>
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <mapper namespace="com.hanqi.dao.SrRoleDao">
6
7 <select id="selectAllRoles" resultType="SrRole">
8 SELECT * FROM sr_role sr WHERE sr.id IN
9 (SELECT sur.roleid FROM sr_user_role sur WHERE sur.userid=#{userid})
10 </select>
11
12 <select id="selectAll" resultType="SrRole">
13 select * from sr_role
14 </select>
15 </mapper>
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <mapper namespace="com.hanqi.dao.SrMenuDao">
6
7 <select id="selectMenus" parameterType="SrUser" resultType="SrMenu">
8 SELECT * FROM SR_MENU SM
9 WHERE SM.ID IN (SELECT SRM.MENUID
10 FROM SR_ROLE_MENU SRM
11 WHERE SRM.ROLEID = (SELECT SUR.ROLEID
12 FROM SR_USER_ROLE SUR
13 WHERE SUR.USERID = #{id}))
14 </select>
15
16 </mapper>
controller层控制器:
1 package com.hanqi.controller;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Controller;
8 import org.springframework.ui.Model;
9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.ResponseBody;
11 import org.springframework.web.bind.annotation.SessionAttributes;
12
13 import com.alibaba.fastjson.JSONObject;
14 import com.hanqi.dao.SrUserDao;
15 import com.hanqi.model.SrUser;
16
17 @Controller
18 @SessionAttributes("currentUser")
19 @RequestMapping("sruser")
20 public class SrUserController {
21
22 @Autowired
23 private SrUserDao srUserDao;
24
25 @RequestMapping("/login")
26 public String login(SrUser srUser, Model model) {
27 String vname = "login";
28 model.addAttribute("user", srUser);
29 SrUser su = srUserDao.login(srUser);
30
31 if(su!=null) {
32 vname = "index";
33 model.addAttribute("currentUser", su);
34 }
35
36 return vname;
37 }
38
39 @RequestMapping("/register")
40 public String register(SrUser srUser) {
41 srUser.setStatus("1");
42 int a = srUserDao.insertSrUser(srUser);
43
44 return "regsuccess";
45 }
46
47 @ResponseBody
48 @RequestMapping("selectAll")
49 public JSONObject selectAll() {
50 JSONObject jo = new JSONObject();
51 List<SrUser> list = srUserDao.selectAll();
52 jo.put("total", list.size());
53 jo.put("rows", list);
54
55 return jo;
56 }
57
58 }
package com.hanqi.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.hanqi.dao.SrRoleDao;
import com.hanqi.model.SrRole;
@Controller
@RequestMapping("/role")
public class SrRoleController {
@Autowired
private SrRoleDao srRoleDao;
@ResponseBody
@RequestMapping("/selectAllRoles")
public List<SrRole> selectAllRoles(String userid) {
// 查询当前用户拥有的角色
List<SrRole> list = srRoleDao.selectAllRoles(userid);
// 查询所有的角色
List<SrRole> listAll = srRoleDao.selectAll();
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < listAll.size(); j++) {
if (listAll.get(j).getId() == list.get(i).getId()) {
listAll.get(j).setChecked(true);
}
}
}
return listAll;
}
}
1 package com.hanqi.controller;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.servlet.http.HttpServletRequest;
7
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Controller;
10 import org.springframework.web.bind.annotation.RequestMapping;
11 import org.springframework.web.bind.annotation.ResponseBody;
12
13 import com.hanqi.dao.SrMenuDao;
14 import com.hanqi.model.SrMenu;
15 import com.hanqi.model.SrUser;
16
17 @Controller
18 @RequestMapping("/menu")
19 public class SrMenuController {
20
21 @Autowired
22 private SrMenuDao srMenuDao;
23
24 @ResponseBody
25 @RequestMapping("/selectMenus")
26 public List<SrMenu> selectMenus(HttpServletRequest request) {
27
28 SrUser currentUser = (SrUser)request.getSession().getAttribute("currentUser");
29
30 List<SrMenu> list = new ArrayList<SrMenu>();
31 if(currentUser!=null) {
32 list = srMenuDao.selectMenus(currentUser);
33 }
34
35 return list;
36 }
37
38 }
前台jsp页面:
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <%
7 String basePath = request.getContextPath();
8 %>
9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <script type="text/javascript" src="<%=basePath %>/js/jquery-3.2.1.min.js"></script>
11 <script type="text/javascript" src="<%=basePath %>/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
12 <link type="text/css" rel="stylesheet" href="<%=basePath %>/jquery-easyui-1.5.1/themes/icon.css"></link>
13 <link type="text/css" rel="stylesheet" href="<%=basePath %>/jquery-easyui-1.5.1/themes/default/easyui.css"></link>
14 <script type="text/javascript" src="<%=basePath %>/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>
15 <script type="text/javascript" src="<%=basePath %>/js/index.js"></script>
16 <script type="text/javascript">
17 var __ctx = "<%=basePath %>";
18 </script>
19 <title>Insert title here</title>
20 </head>
21 <body class="easyui-layout">
22 <div data-options="region:'north',title:'North Title',split:true,height:100">
23 <h1>${currentUser.realname }</h1>
24 </div>
25 <div data-options="region:'west',title:'West',split:true,width:150">
26 <ul id="treemenu" class="easyui-tree"
27 data-options="url:'<%=basePath %>/menu/selectMenus.do',idField:'id',
28 parentField:'parentid',textField:'menuname'"></ul>
29 </div>
30 <div data-options="region:'center'">
31 <div id="tabs_userrole" class="easyui-tabs" data-options="fit:true">
32 </div>
33 </div>
34 </body>
35 </html>
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <%
7 String basePath = request.getContextPath();
8 %>
9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <script type="text/javascript"
11 src="<%=basePath%>/js/jquery-3.2.1.min.js"></script>
12 <script type="text/javascript"
13 src="<%=basePath%>/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
14 <link type="text/css" rel="stylesheet"
15 href="<%=basePath%>/jquery-easyui-1.5.1/themes/icon.css"></link>
16 <link type="text/css" rel="stylesheet"
17 href="<%=basePath%>/jquery-easyui-1.5.1/themes/default/easyui.css"></link>
18 <script type="text/javascript"
19 src="<%=basePath%>/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>
20 <title>Insert title here</title>
21 </head>
22 <body>
23 <table id="userinfo" class="easyui-datagrid"
24 data-options="toolbar:'#tools',url:'<%=basePath%>/sruser/selectAll.do',fit:true,fitColumns:true,singleSelect:true">
25 <thead>
26 <tr>
27 <th data-options="field:'',width:100,checkbox:true"></th>
28 <th data-options="field:'id',width:100">id</th>
29 <th data-options="field:'username',width:100">用户名</th>
30 <th data-options="field:'realname',width:100">姓名</th>
31 <th data-options="field:'status',width:100">状态</th>
32 <th data-options="field:'mark',width:100">备注</th>
33 </tr>
34 </thead>
35 </table>
36 <div id="tools">
37 <a class="easyui-linkbutton" iconCls="icon-add"
38 onclick="showRoleInfos()">修改角色</a>
39 </div>
40
41 <div id="dialog_roles" class="easyui-dialog"
42 data-options="closed:true,width:200,height:300,title:'更改角色',modal:true">
43 <ul id="role_tree"></ul>
44 </div>
45
46 <script type="text/javascript">
47 function showRoleInfos() {
48 var data = $("#userinfo").datagrid("getSelected");
49 $("#role_tree").tree({
50 url:"role/selectAllRoles.do",
51 checkbox:true,
52 idField:"id",
53 parentField:"id",
54 textField:"rolename",
55 queryParams:{
56 userid:data.id
57 },
58 onCheck:function(node, checked) {
59 console.log(node);
60 console.log(checked);
61 }
62 });
63 $("#dialog_roles").dialog("open");
64 }
65
66
67
68
69
70
71
72 //easyui实现自定义simpleData加载
73 $.fn.tree.defaults.loadFilter = function (data) {
74 var opt = $(this).data().tree.options;//整个tree的dom对象
75 var idField, textField, parentField;
76 if (opt.parentField) {
77 idField = opt.idField || 'id';
78 textField = opt.textField || 'text';
79 parentField = opt.parentField;
80 var i,l,
81 treeData = [],
82 tmpMap = [];
83 for (i = 0, l = data.length; i < l; i++) {
84 tmpMap[data[i][idField]] = data[i];
85 }
86 for (i = 0, l = data.length; i < l; i++) {
87 if (tmpMap[data[i][parentField]] && data[i][idField] != data[i][parentField]) {
88 if (!tmpMap[data[i][parentField]]['children'])
89 tmpMap[data[i][parentField]]['children'] = [];
90 data[i]['text'] = data[i][textField];
91 tmpMap[data[i][parentField]]['children'].push(data[i]);
92 } else {
93 data[i]['text'] = data[i][textField];
94 treeData.push(data[i]);
95 }
96 }
97 return treeData;
98 }
99 return data;
100 };
101 </script>
102
103
104
105 </body>
106 </html>
1 <%@ page language="java" contentType="text/html; charset=utf-8"
2 pageEncoding="utf-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <title>Insert title here</title>
8 </head>
9 <body>
10 <form action="sruser/login.do" method="post">
11 <table>
12 <tr>
13 <td>用户名: </td>
14 <td><input name="username" value="${user.username }" /></td>
15 </tr>
16 <tr>
17 <td>密码: </td>
18 <td><input name="password" value="${user.password }" /></td>
19 </tr>
20 <tr>
21 <td colspan="2"><input type="submit" value="登录" /></td>
22 </tr>
23 </table>
24 </form>
25 </body>
26 </html>
1 <%@ page language="java" contentType="text/html; charset=utf-8"
2 pageEncoding="utf-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <title>Insert title here</title>
8 </head>
9 <body>
10 <form action="sruser/register.do" method="post">
11 <table>
12 <tr>
13 <td>用户名: </td>
14 <td><input name="username" /></td>
15 </tr>
16 <tr>
17 <td>密码: </td>
18 <td><input name="password" /></td>
19 </tr>
20 <tr>
21 <td>确认密码: </td>
22 <td><input name="password1" /></td>
23 </tr>
24 <tr>
25 <td>姓名: </td>
26 <td><input name="realname" /></td>
27 </tr>
28 <tr>
29 <td colspan="2"><input type="submit" value="注册" /></td>
30 </tr>
31 </table>
32 </form>
33 </body>
34 </html>
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <%
7 String basePath = request.getContextPath();
8 %>
9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13 注册成功 !
14 <a href="<%=basePath %>/login.jsp">返回登录</a>
15 </body>
16 </html>
我写的不完全版……补全之后再贴上来