1.创建userinfo.sql数据库脚本
1 create table USERINFO 2 ( 3 id NUMBER not null, 4 uname VARCHAR2(20), 5 password VARCHAR2(20), 6 age NUMBER 7 ) 8 ; 9 alter table USERINFO add primary key (ID); 10 11 create sequence seq_userinfo; 12 13 insert into USERINFO (id, uname, password, age) 14 values (seq_userinfo.nextval, ‘holly‘, ‘123‘, 18); 15 insert into USERINFO (id, uname, password, age) 16 values (seq_userinfo.nextval, ‘石头‘, ‘123‘, 18); 17 insert into USERINFO (id, uname, password, age) 18 values (seq_userinfo.nextval, ‘朱亚楠‘, ‘123‘, 18); 19 insert into USERINFO (id, uname, password, age) 20 values (seq_userinfo.nextval, ‘大嘴‘, ‘123‘, null); 21 commit;
userinfo.sql
2.创建如下项目结构
3.在项目WebRoot的WEB-INF下的lib中加入如下jar文件
4.在com.entity包下创建UserInfo.java
1 package com.entity; 2 3 import com.page.Page; 4 5 /** 6 * 用户信息表 7 * @author pc 8 * 9 */ 10 public class UserInfo { 11 private Integer id; 12 private String uname; 13 private String password; 14 private Page page; //分页数据封装类 15 16 public UserInfo() { 17 } 18 19 public UserInfo(Integer id) { 20 this.id = id; 21 } 22 23 24 public UserInfo(Page page) { 25 this.page = page; 26 } 27 28 public UserInfo(String uname, String password) { 29 this.uname = uname; 30 this.password = password; 31 } 32 public UserInfo(Integer id, String uname, String password) { 33 this.id = id; 34 this.uname = uname; 35 this.password = password; 36 } 37 public Integer getId() { 38 return id; 39 } 40 public void setId(Integer id) { 41 this.id = id; 42 } 43 public String getUname() { 44 return uname; 45 } 46 public void setUname(String uname) { 47 this.uname = uname; 48 } 49 public String getPassword() { 50 return password; 51 } 52 public void setPassword(String password) { 53 this.password = password; 54 } 55 56 public Page getPage() { 57 return page; 58 } 59 60 public void setPage(Page page) { 61 this.page = page; 62 } 63 64 @Override 65 public String toString() { 66 return "UserInfo [id=" + id + ", password=" + password + ", uname=" 67 + uname + "]"; 68 } 69 70 71 }
UserInfo.java
5.在com.mapper包下创建UserInfoMapper.java映射接口
1 package com.mapper; 2 3 import java.util.List; 4 5 import com.entity.UserInfo; 6 7 public interface UserInfoMapper { 8 /** 9 * 根据id查询 10 * @param id 11 * @return 12 */ 13 //public UserInfo getById(int id); 14 /** 15 * 根据对象查询对象 16 * @param user 17 * @return 18 */ 19 //public UserInfo getByNamePwd(UserInfo user); 20 /** 21 * 查询所有和根据条件查询 22 * @return 23 */ 24 public List<UserInfo> getAllAndWhere(UserInfo user); 25 /** 26 * 添加 27 * @param user 28 * @return 29 */ 30 public Integer saveUser(UserInfo user); 31 /** 32 * 修改 33 * @param user 34 * @return 35 */ 36 public Integer updateUser(UserInfo user); 37 38 39 /** 40 * 根据id删除 41 * @param id 42 * @return 43 */ 44 public Integer deleteUser(int id); 45 46 /** 47 * 查询总记录数 48 * @return 49 */ 50 public Integer getTotalCount(); 51 52 }
UserInfoMapper.java
6.在com.mapper包下创建UserInfoMapper.xml映射文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 3 <mapper namespace="com.mapper.UserInfoMapper"> 4 <!-- 查询所有和根据条件查询 --> 5 <select id="getAllAndWhere" parameterType="User" resultType="User"> 6 <choose> 7 <!-- 分页查询 --> 8 <when test="page!=null"> 9 <![CDATA[ 10 select * from 11 ( 12 select rownum r,id,uname,password from userinfo 13 where rownum<=#{page.startrow} 14 )u 15 where u.r>#{page.endrow} 16 ]]> 17 </when> 18 <otherwise> 19 select * from userinfo 20 <where> 21 <choose> 22 <!-- 根据用户名和密码查询 --> 23 <when test="uname!=null and password!=null"> 24 and uname=#{uname} and password=#{password} 25 </when> 26 <otherwise> 27 <!-- 根据id查询 --> 28 <if test="id!=null"> 29 and id=#{id} 30 </if> 31 </otherwise> 32 </choose> 33 </where> 34 </otherwise> 35 </choose> 36 37 </select> 38 <!-- 修改 --> 39 <update id="updateUser" parameterType="User"> 40 update userinfo set uname=#{uname},password=#{password} where id=#{id} 41 </update> 42 43 <!-- 添加 --> 44 <insert id="saveUser" parameterType="User"> 45 insert into userinfo(id,uname,password) 46 values(seq_userinfo.nextval,#{uname},#{password}) 47 </insert> 48 <!-- 删除 --> 49 <delete id="deleteUser" parameterType="int"> 50 delete from userinfo where id=#{id} 51 </delete> 52 <!-- 查询总条数 --> 53 <select id="getTotalCount" resultType="Integer"> 54 select count(*) from userinfo 55 </select> 56 57 </mapper>
UserInfoMapper.xml
7.在src下创建jdbc.properties的连接数据库的属性文件
1 driver=oracle.jdbc.driver.OracleDriver 2 url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl 3 username=holly 4 password=sys
jdbc.properties
8.在src下创建日志文件log4j.properties属性文件
1 log4j.rootLogger=DEBUG, Console 2 3 #Console 4 log4j.appender.Console=org.apache.log4j.ConsoleAppender 5 log4j.appender.Console.layout=org.apache.log4j.PatternLayout 6 log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 7 8 log4j.logger.java.sql.ResultSet=INFO 9 log4j.logger.org.apache=INFO 10 log4j.logger.java.sql.Connection=DEBUG 11 log4j.logger.java.sql.Statement=DEBUG 12 log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.properties
9.在src下创建mybatis的主配置文件configuration.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > 3 <configuration> 4 <!-- 引用属性文件 --> 5 <properties resource="jdbc.properties"/> 6 7 <!-- 定义别名 --> 8 <typeAliases> 9 <typeAlias type="com.entity.UserInfo" alias="User"/> 10 </typeAliases> 11 12 <!-- 数据源配置 --> 13 <environments default="development"> 14 <environment id="development"> 15 <transactionManager type="JDBC"/> 16 <dataSource type="POOLED"> 17 <property name="driver" value="${driver}"/> 18 <property name="url" value="${url}"/> 19 <property name="username" value="${username}"/> 20 <property name="password" value="${password}"/> 21 </dataSource> 22 </environment> 23 </environments> 24 <!-- 注册映射文件 --> 25 <mappers> 26 <mapper resource="com/mapper/UserInfoMapper.xml"/> 27 </mappers> 28 </configuration>
configuration.xml
10.在com.util包下创建获取SqlSession对象的MyBatisUtil.java工具类
1 package com.util; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 11 /** 12 * 获取Sqlsession工具类 13 * @author pc 14 * 15 */ 16 public class MyBatisUtil { 17 private static SqlSessionFactory sqlSessionFactory=null; 18 static{ 19 try { 20 Reader reader=Resources.getResourceAsReader("configuration.xml"); 21 sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 } 26 27 public static SqlSession getSqlSession(boolean isCommit){ 28 return sqlSessionFactory.openSession(isCommit); 29 } 30 31 }
MyBatisUtil.java
11.在com.mapper.impl包下创建UserInfoMapperImpl.java映射接口实现类
1 package com.mapper.impl; 2 3 import java.util.List; 4 5 import org.apache.ibatis.session.SqlSession; 6 7 import com.entity.UserInfo; 8 import com.mapper.UserInfoMapper; 9 import com.util.MyBatisUtil; 10 11 public class UserinfoMapperImpl implements UserInfoMapper { 12 private SqlSession sqlsession=null; 13 /** 14 * 删除 15 */ 16 public Integer deleteUser(int id) { 17 sqlsession=MyBatisUtil.getSqlSession(true); 18 UserInfoMapper mapper=sqlsession.getMapper(UserInfoMapper.class); 19 Integer num=mapper.deleteUser(id); 20 sqlsession.close(); 21 return num; 22 } 23 /** 24 * 登录和各种查 25 */ 26 public List<UserInfo> getAllAndWhere(UserInfo user) { 27 sqlsession=MyBatisUtil.getSqlSession(false); 28 UserInfoMapper mapper=sqlsession.getMapper(UserInfoMapper.class); 29 List<UserInfo> list=mapper.getAllAndWhere(user); 30 sqlsession.close(); 31 return list; 32 } 33 /** 34 * 添加 35 */ 36 public Integer saveUser(UserInfo user) { 37 sqlsession=MyBatisUtil.getSqlSession(true); 38 UserInfoMapper mapper=sqlsession.getMapper(UserInfoMapper.class); 39 Integer num=mapper.saveUser(user); 40 sqlsession.close(); 41 return num; 42 } 43 /** 44 * 修改 45 */ 46 public Integer updateUser(UserInfo user) { 47 sqlsession=MyBatisUtil.getSqlSession(true); 48 UserInfoMapper mapper=sqlsession.getMapper(UserInfoMapper.class); 49 Integer num=mapper.updateUser(user); 50 sqlsession.close(); 51 return num; 52 } 53 /** 54 * 查询总条数 55 */ 56 public Integer getTotalCount() { 57 sqlsession=MyBatisUtil.getSqlSession(true); 58 UserInfoMapper mapper=sqlsession.getMapper(UserInfoMapper.class); 59 Integer num=mapper.getTotalCount(); 60 sqlsession.close(); 61 return num; 62 } 63 64 65 66 }
UserinfoMapperImpl.java
12.在com.page包下创建Page.java分页数据封装类
1 package com.page; 2 3 public class Page { 4 private Integer pagesize; // 页面大小 5 private Integer pageno; // 当前页 6 private Integer totalcount; // 总记录数 7 private Integer totalpage; 8 private Integer startrow; // 开始行 9 private Integer endrow; // 结束行 10 11 public Page() { 12 } 13 14 15 /*public Page(Integer totalcount) { 16 this.setTotalpage(totalcount); 17 }*/ 18 19 20 public Page(Integer pagesize, Integer pageno,Integer totalcount) { 21 this.pageno=pageno; 22 this.pagesize=pagesize; 23 this.endrow = (pageno - 1) * pagesize; 24 this.startrow = pageno * pagesize; 25 this.setTotalpage(totalcount); 26 } 27 28 public Integer getPagesize() { 29 return pagesize; 30 } 31 32 public void setPagesize(Integer pagesize) { 33 34 this.pagesize = pagesize; 35 36 } 37 38 public Integer getPageno() { 39 return pageno; 40 } 41 42 public void setPageno(Integer pageno) { 43 44 this.pageno = pageno; 45 46 47 } 48 49 public Integer getTotalcount() { 50 return totalcount; 51 } 52 53 public void setTotalcount(Integer totalcount) { 54 this.totalcount = totalcount; 55 } 56 57 public Integer getTotalpage() { 58 return totalpage; 59 } 60 61 public void setTotalpage(Integer totalcount) { 62 this.setTotalcount(totalcount); 63 this.totalpage = totalcount % pagesize == 0 ? totalcount / pagesize 64 : totalcount / pagesize + 1; 65 66 } 67 68 public Integer getStartrow() { 69 return startrow; 70 } 71 72 public void setStartrow(Integer startrow) { 73 this.startrow = startrow; 74 } 75 76 public Integer getEndrow() { 77 return endrow; 78 } 79 80 public void setEndrow(Integer endrow) { 81 this.endrow = endrow; 82 } 83 84 @Override 85 public String toString() { 86 return "Page [endrow=" + endrow + ", pageno=" + pageno + ", pagesize=" 87 + pagesize + ", startrow=" + startrow + ", totalcount=" 88 + totalcount + ", totalpage=" + totalpage + "]"; 89 } 90 91 }
Page.java
13.在com.service包下创建UserInfoService.java业务接口
package com.service; import java.util.List; import com.entity.UserInfo; /** * 服务层接口 * @author pc * */ public interface UserInfoService { /** * 根据id查询 * @param id * @return */ //public UserInfo getById(int id); /** * 根据对象查询对象 * @param user * @return */ //public UserInfo getByNamePwd(UserInfo user); /** * 查询所有和根据条件查询 * @return */ public List<UserInfo> getAllAndWhere(UserInfo user); /** * 添加 * @param user * @return */ public Integer saveUser(UserInfo user); /** * 修改 * @param user * @return */ public Integer updateUser(UserInfo user); /** * 根据id删除 * @param id * @return */ public Integer deleteUser(int id); /** * 查询总记录数 * @return */ public Integer getTotalCount(); }
UserInfoService.java
14.在com.service.impl包下创建UserInfoServiceImpl.java业务接口实现类
1 package com.service.impl; 2 3 import java.util.List; 4 5 import com.entity.UserInfo; 6 import com.mapper.UserInfoMapper; 7 import com.mapper.impl.UserinfoMapperImpl; 8 import com.service.UserInfoService; 9 10 public class UserInfoServiceImpl implements UserInfoService { 11 UserInfoMapper mapper=new UserinfoMapperImpl(); 12 13 public Integer deleteUser(int id) { 14 return mapper.deleteUser(id); 15 } 16 17 public Integer updateUser(UserInfo user) { 18 return mapper.updateUser(user); 19 } 20 21 public List<UserInfo> getAllAndWhere(UserInfo user) { 22 return mapper.getAllAndWhere(user); 23 } 24 25 public Integer saveUser(UserInfo user) { 26 return mapper.saveUser(user); 27 } 28 29 public Integer getTotalCount() { 30 // TODO Auto-generated method stub 31 return mapper.getTotalCount(); 32 } 33 34 }
UserInfoServiceImpl.java
15.在com.action包下创建Struts2的控制器类UserInfoAction.java
1 package com.action; 2 3 import java.util.List; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpSession; 7 8 import org.apache.struts2.ServletActionContext; 9 10 import com.entity.UserInfo; 11 import com.opensymphony.xwork2.ActionSupport; 12 import com.page.Page; 13 import com.service.UserInfoService; 14 import com.service.impl.UserInfoServiceImpl; 15 /** 16 * //1.获取request,session的方法1:解耦方式 ActionContext ac= 17 * ActionContext.getContext(); //1.1将数据放给request对象集合 18 * Map<String, Object> requestMap=(Map<String, Object>) 19 * ac.get("request"); //就相当于setAttribute(key,value); 20 * requestMap.put("list", "list"); 21 * 22 * //1.2.获取session对象集合 Map<String, Object> 23 * sessionMap=ac.getSession(); sessionMap.put("uname", 24 * loginlist.get(0).getUname()); 25 */ 26 public class UserInfoAction extends ActionSupport { 27 28 UserInfoService service = new UserInfoServiceImpl(); 29 /** 30 * 该对象接受表单的值(代理对象通过setter和getter) 31 */ 32 private UserInfo user; 33 /** 34 * 封装page对象的 35 */ 36 private Page page; 37 38 /** 39 * 1.登录 40 * 41 * @return 42 */ 43 public String login() { 44 if (user!= null) { 45 System.out.println("参数已经接到"); 46 // 业务处理 47 List<UserInfo> loginlist = service.getAllAndWhere(user); 48 UserInfo useinfo=loginlist.get(0); 49 if (useinfo != null) { 50 System.out.println("登录成功"); 51 // 2.获取request,session的方法2:耦合方式 52 // 2.1获取request对象 53 HttpServletRequest request = ServletActionContext 54 .getRequest(); 55 // request.setAttribute("list", "list"); 56 // 2.2获取session对象 57 HttpSession session = request.getSession(); 58 session.setAttribute("uname", useinfo.getUname()); 59 60 return SUCCESS; 61 62 } else { 63 System.out.println("登录失败"); 64 return ERROR; 65 } 66 } else { 67 System.out.println("参数没有接到"); 68 return ERROR; 69 } 70 71 } 72 73 /** 74 * 2.查询所有 75 * @return 76 */ 77 public String findAll(){ 78 HttpServletRequest request=ServletActionContext.getRequest(); 79 80 //查单条 81 Integer totalCount=service.getTotalCount(); 82 Integer pageNo=1; 83 if(page!=null){ 84 pageNo=page.getPageno(); 85 } 86 87 page=new Page(2, pageNo, totalCount); 88 System.out.println("page:"+page); 89 //如果page对象为空=查询所有,如果page对象不为空=分页查询 90 UserInfo u=new UserInfo(page); 91 System.out.println("分页对象"+page); 92 List<UserInfo> list=service.getAllAndWhere(u); 93 if(list!=null){ 94 System.out.println("查询所有,查到了..."); 95 request.setAttribute("list", list); 96 request.setAttribute("page", page); 97 return SUCCESS; 98 }else{ 99 System.out.println("查询所有,没有查到..."); 100 return ERROR; 101 } 102 } 103 /** 104 *3. 根据id查询 105 * @return 106 */ 107 public String findById(){ 108 Integer id=user.getId(); 109 if(id!=null){ 110 System.out.println("id接到了.."); 111 112 List<UserInfo> list=service.getAllAndWhere(user); 113 UserInfo userinfo=list.get(0); 114 if(userinfo!=null){ 115 System.out.println("根据id查到了"); 116 HttpServletRequest request=ServletActionContext.getRequest(); 117 request.setAttribute("upuser", userinfo); 118 return SUCCESS; 119 120 }else{ 121 System.out.println("根据id没有查到"); 122 return ERROR; 123 } 124 }else{ 125 System.out.println("id没有接到..."); 126 return ERROR; 127 } 128 129 } 130 /** 131 * 4.注册 132 * @return 133 */ 134 public String register(){ 135 if(user!=null){ 136 System.out.println("参数接到了.."); 137 Integer num=service.saveUser(user); 138 if(num>0){ 139 System.out.println("注册成功..."); 140 return SUCCESS; 141 }else{ 142 System.out.println("注册失败..."); 143 return ERROR; 144 } 145 }else{ 146 System.out.println("参数没有接到.."); 147 148 return ERROR; 149 } 150 } 151 /** 152 * 5.修改 153 * @return 154 */ 155 public String update(){ 156 if(user!=null){ 157 System.out.println("参数接到了.."); 158 Integer num=service.updateUser(user); 159 if(num>0){ 160 System.out.println("修改成功"); 161 return SUCCESS; 162 }else{ 163 System.out.println("修改失败"); 164 return ERROR; 165 } 166 }else{ 167 System.out.println("参数没有接到.."); 168 return ERROR; 169 } 170 } 171 172 /** 173 * 6.删除 174 * @return 175 */ 176 public String delete(){ 177 if(user.getId()!=null){ 178 System.out.println("id接到了"); 179 int num=service.deleteUser(user.getId()); 180 if(num>0){ 181 System.out.println("删除成功"); 182 return SUCCESS; 183 }else{ 184 System.out.println("删除失败"); 185 return ERROR; 186 } 187 }else{ 188 System.out.println("id没有接到"); 189 return ERROR; 190 } 191 } 192 public UserInfo getUser() { 193 return user; 194 } 195 196 public void setUser(UserInfo user) { 197 this.user = user; 198 } 199 200 public Page getPage() { 201 return page; 202 } 203 204 public void setPage(Page page) { 205 this.page = page; 206 } 207 208 209 }
UserInfoAction.java
16.在src下创建struts.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" > 3 <struts> 4 <!-- 处理中文乱码 --> 5 <constant name="struts.i18n.encoding" value="UTF-8"/> 6 7 <package name="default" namespace="/" extends="struts-default"> 8 9 <!-- 10 配置全局action节点的result,reuslt是公用的, 11 全局配置不能和默认配置一起使用 12 --> 13 <global-results> 14 <result name="error">error.jsp</result> 15 </global-results> 16 17 <!-- 登录,修改,删除,注册 形成一个动态调用=通配符使用 --> 18 <action name="*" class="com.action.UserInfoAction" method="{1}"> 19 <result name="success" type="redirectAction">findAll</result> 20 </action> 21 22 <!-- 查询所有 --> 23 <action name="findAll" class="com.action.UserInfoAction" method="findAll"> 24 <result name="success">index.jsp</result> 25 </action> 26 27 <!-- 查单条 --> 28 <action name="findById" class="com.action.UserInfoAction" method="findById"> 29 <result name="success">update.jsp</result> 30 </action> 31 32 33 34 35 36 <!-- 登陆 37 <action name="login" class="com.action.UserInfoAction" method="login"> 38 <result name="success" type="redirectAction">findAll</result> 39 </action> 40 --> 41 42 <!-- 修改 43 <action name="update" class="com.action.UserInfoAction" method="update"> 44 <result name="success" type="redirectAction">findAll</result> 45 </action> 46 --> 47 <!-- 添加 48 <action name="register" class="com.action.UserInfoAction" method="register"> 49 <result name="success">login.jsp</result> 50 </action> 51 --> 52 53 <!-- 删除 54 <action name="delete" class="com.action.UserInfoAction" method="delete"> 55 <result name="success" type="redirectAction">findAll</result> 56 </action> 57 --> 58 59 </package> 60 </struts>
struts.xml
17.编辑WebRoot下WEB-INF下的web.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 <welcome-file-list> 8 <welcome-file>login.jsp</welcome-file> 9 </welcome-file-list> 10 <filter> 11 <filter-name>struts2</filter-name> 12 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 13 </filter> 14 <filter-mapping> 15 <filter-name>struts2</filter-name> 16 <url-pattern>*.action</url-pattern> 17 </filter-mapping> 18 </web-app>
web.xml
18.在WebRoot下创建js文件夹加入jquery-1.8.3.js文件
19.在WebRoot下创建login.jsp登录页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index.jsp‘ starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <center> 25 <fieldset style="width:300px"> 26 <legend>登录</legend> 27 <form action="login.action" method="post"> 28 <table> 29 <tr> 30 <td>用户名:</td> 31 <td><input type="text" name="user.uname"/></td> 32 </tr> 33 <tr> 34 <td>密码:</td> 35 <td><input type="password" name="user.password"/></td> 36 </tr> 37 <tr> 38 <td><input type="submit" value="登录"/></td> 39 </tr> 40 </table> 41 </form> 42 </fieldset> 43 </center> 44 </body> 45 </html>
login.jsp
20.在WebRoot下创建index.jsp首页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html> 10 <head> 11 <base href="<%=basePath%>"> 12 13 <title>My JSP ‘index.jsp‘ starting page</title> 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <script type="text/javascript" src="js/jquery-1.8.3.js"></script> 20 <script type="text/javascript"> 21 $(function(){ 22 $("tr:odd").css("background-color","#ccc"); 23 }); 24 </script> 25 </head> 26 27 <body> 28 <center> 29 <h1>欢迎${uname}登录成功!</h1> 30 <table> 31 <tr><td colspan="2"><a href="register.jsp">注册</a></td></tr> 32 <tr><td>编号</td><td>姓名</td><td>密码</td><td>操作</td></tr> 33 <c:forEach var="i" items="${list}"> 34 <tr><td>${i.id}</td><td>${i.uname}</td><td>${i.password}</td> 35 <td><a href="findById.action?user.id=${i.id}">修改</a> | <a href="delete.action?user.id=${i.id}">删除</a></td></tr> 36 </c:forEach> 37 </table> 38 当前第${page.pageno}/${page.totalpage }页 39 <a href="findAll.action?page.pageno=1">首页</a> 40 <c:choose> 41 <c:when test="${page.pageno > 1}"> 42 <a href="findAll.action?page.pageno=${page.pageno-1}">上一页</a> 43 44 </c:when> 45 <c:otherwise> 46 <a href="javascript:alert(‘已经是第一页!‘);">上一页</a> 47 </c:otherwise> 48 </c:choose> 49 <c:choose> 50 <c:when test="${page.pageno<page.totalpage}"> 51 <a href="findAll.action?page.pageno=${page.pageno+1}">下一页</a> 52 53 </c:when> 54 <c:otherwise> 55 <a href="javascript:alert(‘已经是最后一页!‘);">上一页</a> 56 57 </c:otherwise> 58 </c:choose> 59 60 <a href="findAll.action?page.pageno=${page.totalpage}">末页</a> 61 </center> 62 </body> 63 </html>
index.jsp
21.在WebRoot下创建register.jsp注册页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index.jsp‘ starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <center> 25 <fieldset style="width:300px"> 26 <legend>注册</legend> 27 <form action="register.action" method="post"> 28 <table> 29 <tr> 30 <td>用户名:</td> 31 <td><input type="text" name="user.uname"/></td> 32 </tr> 33 <tr> 34 <td>密码:</td> 35 <td><input type="password" name="user.password"/></td> 36 </tr> 37 <tr> 38 <td><input type="submit" value="注册"/></td> 39 </tr> 40 </table> 41 </form> 42 </fieldset> 43 </center> 44 </body> 45 </html>
register.jsp
22.在WebRoot下创建update.jsp修改页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index.jsp‘ starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <center> 25 <fieldset style="width:300px"> 26 <legend>修改用户信息</legend> 27 <form action="update.action?user.id=${upuser.id}" method="post"> 28 <table> 29 <tr> 30 <td>用户名:</td> 31 <td><input type="text" name="user.uname" value="${upuser.uname}"/></td> 32 </tr> 33 <tr> 34 <td>密码:</td> 35 <td><input type="password" name="user.password" value="${upuser.password}"/></td> 36 </tr> 37 <tr> 38 <td><input type="submit" value="注册"/></td> 39 </tr> 40 </table> 41 </form> 42 </fieldset> 43 </center> 44 </body> 45 </html>
update.jsp
23.在error.jsp下创建error.jsp错误页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index.jsp‘ starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 业务处理失败!! 25 </body> 26 </html>
error.jsp
24.运行结果如下