Struts2
1、在 jsp servlet开发中,首先使用的是MODEL1开发模式.
jsp与数据库直接进行交互,之间写javaBean代码,效率较高.
在项目规模较大的时候,代码非常乱,维护起来非常麻烦,不利于分工,也不利于代码的重用.
2、由于MODEL1的不足,发展了MODEL2,将代码分为了三块,视图View,模型Model,控制器Controller.现在jsp访问了servlet,servlet访问了javaBean,然后访问数据库.
好处就是内容和显示进行分离,开发人员可以专注于某一块,从而提高效率.适合的项目规模比较大的情况.而且重复利用率得到提高,便于维护.
3、使用MVC(model2)来进行项目开发,代码量比较大.而且重复代码较多,比如req.getParameter(“xxx”);
req.setAttribute(“xx”,xx);
就要使用更简便的方法,出现了框架,它替代程序员完成一部分代码,提高开发效率.
4、框架:framework.框架就是一个模板.框架就是不变的部分.框架就是一个半成品,需要程序员填写完整.使用框架必须遵循框架的规则.
例如:简历模板.
5、框架的好处:提高开发效率.不会提高执行效率,甚至会降低.
6、对于web应用来说,有很多框架.其中典型的mvc框架有struts1,webwork,jsf,struts2(与struts没有多大关系),springmvc,nutz,jersey等等.
基本原理都是一样的,掌握一种其他学起来很容易.
本文主要学习struts2
7、struts2是由struts1(很少)和webwork整合而来.是apache下的一个项目.开源
struts.apacje.org
8、下载 https:https://github.com/apache/struts
https://struts.apacje.org/download
9、目录介绍:
apps:里面存放的是一些项目案例
docs:存放的是学习文档
lib:存放的是学习文档
src:存放的是struts2的源码
10、mvc框架完成的事情:
servlet做哪些事情:
处理用户提交的数据
调用业务方法
处理业务结果
控制视图显示
用户请求映射到一个java类
mvc框架做的事情:
将用户请求映射到一个java类
获取用户提交的数据
渲染数据(将数据封装到前台显示(request))
控制试图跳转
struts2入门
一、搭建struts项目步骤
1、新建web项目
2、导入所需的jar包
3、配置struts2的核心控制器web.xml文件
4、在src下添加struts2的配置文件,strtus.xml文件名是固定的
xml文件的头文件拷贝一个struts.xml文件,或者到core包下的struts-default.xml文件中拷贝.
注:到这里struts2的框架搭建完成.
5、编写Action类,不是编写servlet类了.
public class HelloAction{
public String execute(){
System.out.println("hello struts2");
return "success";
}
}
注:在servlet中,默认执行service方法,在struts中,默认执行execute方法.
在servlet中,service方法参数HttpservletRequest和HttpServiceResponse无返回值,在struts2中,方法都是public的,并且返回值都是String类型,而且方法都是没有参数的.这些就是请求映射到方法的规则.
6、配置action类—在struts.xml中,配置HelloAction
struts2是基于包来管理的.
在preferences中 XML Catalog中可以配置提示!
/index.jsp
name是请求名字,请求到HelloAction类后,再对应上result的success就会访问到index.jsp
struts2可以做四件事情,1.讲一个url映射到一个类里面来.2.可以帮我们封装用户提交过来的数据.3.响应封装好,并进行渲染.4.跳转路径
用户登录案例
1、新建web项目
2、导入jar包
3、配置web.xml
4、在src下编写struts.xml
5、编写login.jsp,action的提交地址.action是扩展名,默认为.action
在web.xml配置过滤器
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
*.action
配置struts.xml文件 core包中有相关配置
form表单中的action=’‘login.action’’,提交后连接器就会拦截这个.action结尾的请求,如果想要配置其他名字的请求就去default.properties中配置.
只需要在登录逻辑的类里面声明成员变量就可以自动接收form表单提交过来的参数,名称一样就可以.
然后接在struts.xml配置文件中配置action
/success.jsp
/login.jsp
然后就可以在前台jsp页面中通过${}得到后台调用set方法获取的值
注意:在前台jsp的form表单中 中action的配置一定要按照规定书写,这个规则对应的是web.xml中的*.action.否则请求将被过滤掉,也就是接收不到请求.