u Struts的几个基本概念
1. struts是一个框架(frameset)
2. struts是一个web框架
3. 框架提高了程序的规范的同时,也约束了程序员的自由
4. struts是一个开源的框架
u Struts为什么有?
因为我们对mvc的理解不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展/开发效率…,所以我们有必要用一个统一的规范来开发项目。→框架struts
u Struts的运行原理
我以一个用户登录来讲解原理→图
原理图如下:
u Struts的快速入门案例(以用户登录验证来演示)
我们使用手动配置的方式来开发第一个struts项目(基本功)
步骤:
1. 先创建一个web工程
2. 把struts的开发包引入到web工程
3. 编写login.jsp
4. 编写ActionForm(用户表单)和Action(小队长→登录小队长)
5. 编写struts-config.xml文件,该文件用于配置Action和ActionForm,对应关系,跳转位置….,一般我们放在/WEB-INF目录下
6. 编写wel.jsp和err.jsp
7. 配置web.xml文件,该文件用于配置ActionServlet
8. 测试
下面我们一起看看struts细节的东西:
① 走一次全过程
② 尤其注意表单中的set和get命名
课堂练习:
自己完成一次手动配置用户登录验证系统
增加功能和细节:
1. 在登录成功的页面显示登录成功后的人名
2. 使用filter配合struts解决中文乱码问题
步骤如下:开发一个过滤器,并设置request.setCharacterEncoding(“utf-8”);
MyFilter1.java
public class MyFilter1 extends HttpServlet implements Filter {
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
arg0.setCharacterEncoding("utf-8");//设置接收编码
arg2.doFilter(arg0, arg1);//必须有这句话
arg1.setContentType("text/html;charset=utf-8");
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
在web.xml中重新配置过滤器:
<!-- 配置filter -->
<filter>
<filter-name>MyFilter1</filter-name>
<filter-class>com.hsp.filters.MyFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. struts-conifg.xml的配置
Scope这个属性,默认将表单对象存入session对象域中
4. 每个action都是单态的,包括ActionServlet
单态是指:在整个程序运行的过程中,始终是一个对象
5. struts-config.xml文件路径,不一定非要放在/WEB-INF,可以自己选择,只要在web.xml中配置好路径即可
6. 问:在一个项目中,是否可以有多个struts-config.xml?
答:可以有,如果有多个配置文件,在web.xml文件可以这样配置
<!-- 配置ActionServlet -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<!-- 配置struts-config,如果有多份配置文件,则用,分隔 -->
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-2.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
7. 增加到数据库去验证该用户是否合法的功能
在mysql数据库中,增加一个用户表
创建domain对象
u 使用工具开发struts项目
一、半手工:用工具导入struts开发包,自动完成相关设置,我们手工配置struts-config.xml文件即可,这里我们还是使用登录验证系统来学习
开发步骤:
1. 建立web工程
2. 导入struts开发包
点击finish,就会自动的引入struts开发包并自动生成struts-config.xml和web.xml文件,并完成一些配置
3. 开发login.jsp
4. 开发action和actionForm
5. 手动配置struts-config.xml
6. 开发ok.jsp和err.jsp
7. 测试
8. 从上面的开发过程,可以提高我们的开发效率
二、全自动:完全依赖myeclipse开发struts,还是以用户登录验证来讲解
1. 创建web工程
2. 引入struts开发包
3. 开发login.jsp
4. 开发action和表单actionForm
创建表单截图
创建action截图
5. 编写ok.jsp和err.jsp
6. 在struts-config.xml的design页面设置个页面的关系
7. 在action中添加你的业务逻辑
8. 测试
课堂练习:使用工具开发struts登录系统