Struts学习笔记

来源:互联网 发布:数据交换平台技术规范 编辑:程序博客网 时间:2024/06/05 23:50
1.当在浏览器中输入http://localhost:8080/web应用时,并不是马上去找web服务器,而是
在本地的c:\windows\system32\driver\etc\hosts 文件下查找该路径下是否有该文件


2.struts开发流程:
用struts开发登录系统
首先创建一个web工程
1.引入struts开发包到工程的lib文件夹下面:struts-config.xml配置详解,struts-1.3.10.7z,struts-config.7z
2.写出login.jsp
3.编写ActionForm 和 Action
4.配置struts-config.xml文件
5.写出welcome.jsp和error.jsp页面
6.在web.xml 中配置ActionServlet
7.开始struts
8.struts中文乱码的问题----->使用过滤器



3.设置打开index.jsp文件时跳转到登录界面的方法:
<body>
<jsp:include page="/WEB-INF/login.jsp"></jsp:include>
</body>
faststone截图工具


4.struts类中的表单类需要继承ActionForm
即UserForm类 需要继承ActionForm,相当于Javabean,有set 和get方法


5.LoginActon需要继承Action ,同时需要重写execute(ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse)方法
这个方法用来处理业务逻辑,会被自动调用 


6.编写struts-config.xml文件 该文件用于配置action 和ActionForm 的对应关系,跳转位置……
一般我们将该文件放在/WEB-INF目录下 (当然也可以放在其他地方)
xml文件一般有个dtd文件
在jar包中struts-core-1.3.10.jar 下的org.apache.struts.resources 下有struts-config_1.3.dtd等文件


7.struts-config.xml中
<struts-config>
<!---配置表单-->
<form-beans>
<!-- name是表单名字,可以任意写,但是我们建议取名规范,建议取名表单类名小写-->
<!--type用于指定表单类的全路径-->
<form-bean name="userForm" type="com.hsp.forms.UserForm" />
</form-beans>

<!--配置action--->
<action-mappings>
<!--配置具体的一个action   path:表示将来访问该action的资源名,http://localhost:8080/web/--->
<!--下面的name名字要跟上面的form-bean的name名字相同-->
//type 用于指定action类的全路径
<action path="/login" name="userForm" type="com.hsp.actions.action类名">
<!---这里配置跳转关系-->
<!---name表示结果名称  path:转发到需要去的页面-->
<forward name="ok" path="/WEB-INF/wel.jsp" />
<forward name="err" path="/WEB-INF/err.jsp" />
</action>
</action-mappings>
</struts-config>


可以在网上下载struts-config.xml配置的详细过程


8.在web.xml文件中配置 总的servlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.strusts.action.</servlet-class>

<!---配置struts-config.xml文件的位置->
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml/</param-value>
</init-param>
</servlet>


<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


struts中包含的控件有:
web服务器  
ActionServlet(总控制器/也叫总司令,该类由struts框架提供,我们只需要配置)
ActionForm(表单,用于存放数据/也叫军火库,它需要继承ActionForm类才是一个表单类)
Action(如LoginAction 分控/也叫小队长,小队长可以有多个,本质是servlet)
model(java类 Service ,ejb,/也叫小兵)


LoginAction.java 类中
public class LoginAction extends Action{
@override
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
//把form转换成对应的UserForm对象
UserForm userForm = (UserForm)form;

//对密码进行简单的验证
if("123".equals(userForm.getPassword())){
return mapping.findForward("ok");//这个ok 对应struts-config.xml文件中 forward标签中的 name="ok"
}


}


}




9.struts细节分析
特别注意表单中的setXX方法 和getXX方法的 XX名字必须跟表单的名称一样,而且首字母要大写


10.如果使用sendRedirect()方法  request中存放的对象不能被取出 因为该方法是先回到浏览器 然后再发到服务器
而forward()方法就可以


11.struts中表单的中文乱码必须使用过滤器
步骤如下:
开发一个过滤器,并设置request.setCharacterEncoding("utf-8");
由于过滤器可以有很多,所以可以建立一个专门存放过滤器的包,将过滤器的类(servlet)都放在该包下面
新建一个servlet,需要继承Filter javax.servlet (注意选择)













原创粉丝点击