struts1.x学习

  现在还是有很多老的项目用的是struts1.x,这几天看了韩顺平的struts视频,也做了一些笔记。

Struts入门

 

1.为什么有struts?

因为我们对MVC的理解不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展效率。

 

2.struts原理

 

 

3.手写版的struts登录系统

(1)先建立一个web工程,将struts开发的jar包(可以再struts官网上下载,核心是struts-core-1.3.10.jar)复制到lib

(2)编写login.jsp界面

(3)编写ActionForm(表单)action(小队长——登录小队长)

     UserForm:需要继承ActionForm类,定义属性时应该与jsp页面的控件名(name)相同,(表单属性名一般与jsp控件名相同,也可以不同,但是必须保证get/set方法与控件名一一对应);

LoginAction:需要继承Action类,重写excute方法,类似于servletdoPost/doGet方法;把form转成对应的UserForm

UserForm userForm=(UserForm)form;

Return mapping.findForward("ok");

 

4)建立并配置struts-config.xml(一般放在WEB-INF文件夹下)(Struts-config.xml配置详解)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<!--配置表单-->

<form-beans>

<form-bean name="userform" type="com.itime.form.UserForm"/>

</form-beans>

<!-- 配置action -->

<action-mappings>

<!-- name将form 与 action相关联;type是全路径;scrope="request" or "session" 默认为session -->

<action path="/login" name="userform" type="com.itime.action.LoginAction">

<forward name="ok" path="/WEB-INF/ok.jsp"></forward>

<forward name="err" path="/WEB-INF/err.jsp"></forward>

</action>

</action-mappings>

</struts-config>

 

(5)编写ok.jsperr.jsp

(6)配置web.xml(该文件用于配置ActionServlet)

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0" 

xmlns="http://java.sun.com/xml/ns/javaee" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <display-name></display-name>

  <servlet>

  <servlet-name>action</servlet-name>

  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

  <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>

  <!-- 是*.do的请求,都交给总控制器 -->

  <url-pattern>*.do</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 

7)测试

 

 

8)其他:

a.在用户登录成功界面,显示登录成功人的名字。(使用过滤器配合struts解决中文乱码问题)

Action属性scope="request"

    在ok.jsp页面,引用包, 

<%

   UserForm userform= (UserForm)request.getAttribute("userform");

  out.print("您好!"+userform.getUsername()); 

%>    或者 

<%=((UserForm)request.getAttribute("userform")).getUsername()  %>

 

用过滤器filter处理中文乱码:

浏览器-->web服务器-->filters-->ActionServlet-->

建立一个过滤器,实现接口Filter(javax.servlet.Filter)

package com.itime.filters;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class ChineseFilter extends HttpServlet implements Filter {

 

@Override

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain arg2) throws IOException, ServletException {

arg0.setCharacterEncoding("utf-8");//设置字符编码

        arg2.doFilter(arg0, arg1);//必须要有,不然的话就停止前进

}

@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

web.xml中配置:

<filter>

  <filter-name>chineseFilter</filter-name>

  <filter-class>com.itime.filters.ChineseFilter</filter-class>

  </filter>

  <filter-mapping>

  <filter-name>chineseFilter</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>

 

b.每个action都是单态的,包括总控制器ActionServlet(2.0有改进)

单态:是指在整个程序运行的过程中,始终是一个对象(对并发有影响)。

c.struts-config.xml不一定非得放在WEB-INF文件夹下,并且可以有多个,只需在web.xml文件下配置好即可。

d.添加到数据库去验证该用户是否合法。

 

 

4.使用工具完成struts开发

(一)用工具导入struts包,自动完成相关配置,我们手工配置struts-config.xml文件即可

步骤如下:

(1)建立工程,右击工程名-----myEclipse——>Add struts Capabilities

(2)编写login.jsp

(3)编写ActionFormAction

(4)手动配置struts-config.xml

(5)编写ok.jsperr.jsp

(6)测试

 

(二)完全依赖myEclipse工具开发

步骤如下:

(1)创建web工程,引入struts开发包

(2)编写login.jsp

(3)开发ActionFormaction(struts-config.xml中用图形界面开发)

(4)开发ok.jsperr.jsp(同样可以用图形界面生成)

(5)在Action中添加业务逻辑判断

(6)测试

 

5.struts是一个web层的框架

首先介绍一下model2

 

 

从图中看出web层就是和 C

对于struts:

 

所以说, strutsweb层框架。

posted on 2012-09-07 15:45  Galloper  阅读(238)  评论(0编辑  收藏  举报

导航