1、cookie和session的区别
2、struts学习笔记
① struts属性驱动和模型
② action当中指定业务方法的调用
③ 管理处理结果
④ 访问servletAPI
– 耦合度高 使用的是servlet当中的方法
– 耦合度低 使用的是action当中的方法
⑤ struts2 是在struts1和 webwork的基础之上研发出来的新的MVC框架。是一个开源框架。
3、配置struts过滤器,进行拦截请求
① 建项目
② 导入jar包(大概10个)
③ 配置struts.xml
<struts>
<package name="hello" namespace="/" extends="struts-default" > <!--默认继承与struts-defult-->
<action name="hello" class="cc.ccoder.study.HelloWord" method="execute">
<!--action当中的name相当于servlet中的url-patten class当前action处理的是哪一个类 method默认处理的是类中的哪一个方法-->
<result>/index.jsp</result> <!--处理结果-->
</action>
</package>
</struts>
配置struts.xml的时候需要创建一个java类来处理action。并且在<result>当中默认设置为success
public class HelloWord {
private String msg;
public String getMsg() {
return msg;
}
public String execute(){
msg = "hello world";
return "success";
}
}
④ 配置web.xml
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
在web.xml当中需要配置过滤器,并且设置拦截。在filter-mapping当中设置连接的地址。这是struts自定义的过滤器,是整个struts的入口。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd";
version="3.1">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
4、属性驱动
① struts属性驱动是指在jsp页面当中name需要在action当中对应。
/welcome.jsp
在action当中method对应的是class当中将要进行处理拦截的方法名字。
/welcome.jsp
这里result的name是上面method进行拦截的方法当中的return中的名称。如果不写默认情况下是success。
public String userLogin(){
System.out.println(“用户名:”+username+” 密码:”+password);
return “hehe”;
}
需要注意的是method当中bean命名需要和form表单当中的名称保持一致。
5、模型驱动
action当中属性名为对象(模型)
public class UserAction {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String userLogin(){
System.out.println("用户名: "+user.getUsername());
System.out.println("密码 "+user.getPassword());
return "success";
}
}
在struts当中配置的和属性驱动一致的。
<action name="userAction" class="cc.ccoder.study.UserAction" method="userLogin">
<result>/welcome.jsp</result>
</action>
跟属性驱动不同的是,在form表单当中name属性需要指明为action当中的对象的属性。
如下面代码所示:name=user.username
<form action="userAction" method="post">
<input name="user.username">
<input name="user.password" type="password">
<input type="submit" value="登录">
</form>