1、建立一个JavaWeb应用
![](https://s1.ax1x.com/2018/12/11/FJHEbF.png)
2、拷贝一下内容到您应用中:美工MM给你准备好的
![](https://s1.ax1x.com/2018/12/11/FJHkuT.png)
3、搭建Struts2的开发环境
a、拷贝必要的jar包(图中黄色框框) 和 与数据库操作有关的jar包与配置文件(图中绿色框框)
![](https://s1.ax1x.com/2018/12/11/FJHZE4.png)
b、配置Struts2核心过滤器
web.xml
![](https://s1.ax1x.com/2018/12/11/FJHuCR.png)
c、在src目录下建立struts.xml配置文件
![](https://s1.ax1x.com/2018/12/11/FJHADU.png)
4、具体开发
4.1、数据模型
a、建立表格
create database day28;
use day28;
#用户表
CREATE TABLE S_User(
userID INT NOT NULL AUTO_INCREMENT, #主键ID
userName VARCHAR(50) NULL, #用户姓名
loginName VARCHAR(50) NULL, #登录名
loginPwd VARCHAR(50) NULL, #密码#
gender VARCHAR(10) NULL, #性别(例如:男,女)
birthday VARCHAR(50) NULL, #出生日期
education VARCHAR(20) NULL, #学历(例如:研究生、本科、专科、高中)
telephone VARCHAR(50) NULL, #电话
hobby VARCHAR(20) NULL, #兴趣爱好(例如:体育、旅游、逛街)
path VARCHAR(500) NULL, #上传路径(path路径)
filename VARCHAR(100) NULL, #上传文件名称(文件名)
remark VARCHAR(500) NULL, #备注
PRIMARY KEY (userID)
);
b、初始化一条数据
INSERT INTO s_user (userID,userName,loginName,loginPwd) VALUES (1,'超级管理员','admin','admin')
c、创建对应的JavaBean类
package com.itheima.domain;
import java.io.Serializable;
public class User implements Serializable {
private Integer userID;
private String userName;
private String loginName;
private String loginPwd;
private String gender;
private String birthday;
private String education;
private String telephone;
private String hobby;
private String path;
private String filename;
private String remark;
// getter 和 setter 方法
4.2、用户登陆
a、登陆页面
![](https://s1.ax1x.com/2018/12/11/FJHeUJ.png)
b、登陆成功:转向/login/home.jsp
c、struts.xml配置文件
![](https://s1.ax1x.com/2018/12/11/FJH3DO.png)
d、动作类
![](https://s1.ax1x.com/2018/12/11/FJHm59.png)
e、业务和Dao实现
![](https://s1.ax1x.com/2018/12/11/FJHK81.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJH8bD.png)
写DAO具体实现前:先导入DBUtilS和数据库连接驱动的jar包、JNDIUtil的工具类和相对应的配置文件context.xml
![](https://s1.ax1x.com/2018/12/11/FJHQv6.png)
context.xml文件内容如下:
![](https://s1.ax1x.com/2018/12/11/FJHMgx.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJH1KK.png)
f、配置Spring容器,管理业务和dao
后面学完后再补上撒!
g、更改JSP页面:login.jsp
更改默认展现模板主题
![](https://s1.ax1x.com/2018/12/11/FJH4MV.png)
把login.jsp中的标签换成struts2的标签以及登陆失败提示
![](https://s1.ax1x.com/2018/12/11/FJHJVe.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJHYUH.png)
5、更改欢迎信息
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJHUPA.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJHt5d.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJHBKf.png)
6、添加用户
/user/add.jsp
![](https://s1.ax1x.com/2018/12/11/FJHa8I.png)
a、把add.jsp的标签全部换成struts2的标签
![](https://s1.ax1x.com/2018/12/11/FJHd2t.png)
b、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJHwxP.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJHDr8.png)
7、查询所有的用户
![](https://s1.ax1x.com/2018/12/11/FJH2Ps.png)
/user/list.jsp
![](https://s1.ax1x.com/2018/12/11/FJH6aQ.png)
a、修改左侧菜单的链接地址
![](https://s1.ax1x.com/2018/12/11/FJHrqS.png)
b、struts.xml配置文件
![](https://s1.ax1x.com/2018/12/11/FJHc5j.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJHW2q.png)
截图如下:
![](https://s1.ax1x.com/2018/12/11/FJHRGn.png)
d、修改list.jsp的显示结果
![](https://s1.ax1x.com/2018/12/11/FJHfx0.png)
e、查询结果如下图所示
![](https://s1.ax1x.com/2018/12/11/FJHIqU.png)
8、删除一条记录
a、list.jsp
![](https://s1.ax1x.com/2018/12/11/FJH5rT.png)
b、struts.xml配置文件
![](https://s1.ax1x.com/2018/12/11/FJHHIJ.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJHOR1.png)
9、查看用户
显示查看结果/user/view.jsp
![](https://s1.ax1x.com/2018/12/11/FJH7a4.png)
a、list.jsp
![](https://s1.ax1x.com/2018/12/11/FJHTZF.png)
b、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJHqi9.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJb9de.png)
d、view.jsp
![](https://s1.ax1x.com/2018/12/11/FJHLGR.png)
e、效果如下图所示
![](https://s1.ax1x.com/2018/12/11/FJHXxx.png)
10、查看用户信息时的文件下载
a、view.jsp
![](https://s1.ax1x.com/2018/12/11/FJHxsK.png)
b、动作类
![](https://s1.ax1x.com/2018/12/11/FJHzqO.png)
c、struts.xml配置文件
![](https://s1.ax1x.com/2018/12/11/FJHvM6.png)
11、用户修改:显示内容
a、list.jsp
![](https://s1.ax1x.com/2018/12/11/FJbpZD.png)
b、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJbiid.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJbCIH.png)
d、edit.jsp
该截图与add.jsp的相同。
但是会有问题,在用户上传简历的那部分:
如果用户第一次没有上传简历,那么用户修改的时候上传简历,没有问题;
如果用户第一次已经上传过简历,修改的时候不上传新的简历,此时edit.jsp页面中并没有对应的下载的字段信息。再保存的话,这两个字段的信息就为null了。
12、用户修改:保存修改后的数据
a、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJbVQP.png)
b、动作类
![](https://s1.ax1x.com/2018/12/11/FJbFJA.png)
c、再次修改edit.jsp
![](https://s1.ax1x.com/2018/12/11/FJbZsf.png)
13、按条件查询
![](https://s1.ax1x.com/2018/12/11/FJbAzt.png)
什么条件都不选就是忽略条件
a、list.jsp
![](https://s1.ax1x.com/2018/12/11/FJbkRI.png)
b、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJbeL8.png)
c、动作类
![](https://s1.ax1x.com/2018/12/11/FJbKoQ.png)
d、dao
![](https://s1.ax1x.com/2018/12/11/FJbQij.png)
14、自定义登陆检查拦截器
a、CheckLoginInterceptor.java
![](https://s1.ax1x.com/2018/12/11/FJbneS.png)
b、struts.xml
![](https://s1.ax1x.com/2018/12/11/FJbudg.png)