`
jay_kid
  • 浏览: 65089 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts 笔记1

阅读更多
最近开始学习Struts,怕看过的东西忘记了,小小总结一下,方便自己,也方便javaeye的同行们在忘记某些东西的时候可以查找看看。里面很多内容都引用了郭克华老师的代码。

好了,废话少说

1.配置文件

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <!-- 在此声明actionServlet-->
    <servlet-name>actionServlet</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</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>

  <!-- 声明jsp表单提交时候,凡以*.do为action内容的,都被actionServlet截获处理-->
  <servlet-mapping>
    <servlet-name>actionServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>



struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
 
  <!-- 在此注册ActionForm -->
  <form-beans>
  	<!-- name:名称  type:类路径 -->
  	<form-bean name="queryForm" type="prj2_1.QueryForm"></form-bean>
  </form-beans>
  
  <global-exceptions />

  <!-- 设置URL逻辑名称(全局,任意的Action都可以识别到)-->
  <global-forwards>
  	<forward name="RESULT" path="/queryResult.jsp"></forward>
  </global-forwards>

  <!-- 注册Action -->
  <action-mappings>
  	<!-- type:类路径; name:相应的ActionForm的名称; path:客户端提交到服务器端时指定的路径 -->
  	<action name="queryForm" path="/query" type="prj2_1.QueryAction">
  	 	<!-- 设置URL逻辑名称(局部,只有这个Action可以识别到)-->
  		<forward name="RESULT" path="/queryResult.jsp"></forward>
  	</action>
  </action-mappings>
 
  <message-resources parameter="prj2_1.ApplicationResources" />
</struts-config>



二、要实现的类
Action
package prj2_1;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import dao.StudentDao;

//Action:负责接受ActionForm的数据,处理
//1:必须继承org.apache.struts.action.Action
//2:重写execute方法来处理业务逻辑
//3:将这个类在配置文件中注册
public class QueryAction extends Action{

	public QueryAction(){
		System.out.println("QueryAction构造函数");
	}
	//ActionForward:封装了跳转目标的路径
	//mapping:访问配置文件
	//form:传过来的ActionForm对象
	public ActionForward execute(ActionMapping mapping, 
									ActionForm form, 
									HttpServletRequest request, 
									HttpServletResponse response) throws Exception {
		QueryForm queryForm = (QueryForm)form;
		String sname = queryForm.getSname();
		//String sname = request.getParameter("sname");
		sname = new String(sname.getBytes("ISO-8859-1"));
		
		StudentDao studentDao = new StudentDao();
		ArrayList stus = studentDao.queryStuByName(sname);
		
		request.setAttribute("stus", stus);
		
		//跳转
		//ActionForward af = new ActionForward("/queryResult.jsp");
		ActionForward af = mapping.findForward("RESULT");
		return af;
	}


ActionForm (只要和jsp里面的form的属性一对一对应好就可以了)
package prj2_1;

import org.apache.struts.action.ActionForm;

//ActionForm:容纳表单提交的值
//1:必须继承 org.apache.struts.action.ActionForm
//2:必须编写和表单元素同名的属性
//3:必须在Struts配置文件中进行注册
public class QueryForm extends ActionForm{
	
	public QueryForm(){
		System.out.println("QueryForm构造函数");
	}
	private String sname;

	public String getSname() {
		return sname;
	}

	public void setSname(String sname) {
		System.out.println("QueryForm setSname");
		this.sname = sname;
	}
}


三、Jsp的内容,注意query.do
    <form action="/Prj2_1/query.do" method="post">
    	请您输入学生姓名:<input name="sname">
    	<input type="submit" value="模糊查询">
    </form>


四、小结
感觉上, 刚刚接触Struts,也不难,关键是要记好它的配置文件是怎样关联的。它的好处是可以把代码的耦合性减低,jsp_request, actionForm, action, jsp_forward几个都可以互不认识,只需要在struts-config.xml里面配置。代码维护起来比较方便。但还有一个问题,就是request里面的attribut的name还是存在某种程度的重合,如果可以在同一位置配置就更好了,不过这个不是Struts的问题,jsp开始就一直存在了,可能已经有解决方法,可能我还没有发现,哈。
分享到:
评论

相关推荐

    struts2综合笔记

    - **发展演变**: Struts2 结合了传统 Struts1 和 WebWork 两个经典框架的优点,是一个成熟的 MVC 框架。 - **核心功能**: - 允许使用 POJO (Plain Old Java Object) 作为 Action 类,使得 Action 更易于测试。 - ...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2 学习重点笔记

    - **核心**:Struts2 的核心其实是 WebWork 2,它融合了 Struts 1 的一些优秀思想。 - **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 ...

    Struts1.x笔记

    这是我看完传智播客Struts1视屏后对Struts1进行的总结,每次复习都是看这个,自认为还不错,希望对你有所帮助,如果您觉得还行的话,记得给好评哦!

    达内,tarena,struts笔记,strutsPPT课件,达内struts笔记

    在本套“达内,tarena,struts笔记,strutsPPT课件,达内struts笔记”资源中,我们重点关注的是Struts 1.x版本,这是一个较旧但仍然广泛使用的版本,尤其对于初学者来说,它是理解MVC设计模式和Web开发基础的良好...

    struts笔记

    1. **Struts2 HelloWorld**: 创建一个简单的Struts2应用通常从"HelloWorld"开始。首先,我们需要设置开发环境,这包括安装Tomcat服务器和JDK,并将必要的jar包添加到项目中。特别地,`struts.xml`配置文件至关重要...

    我的struts2的个人笔记

    Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化和高度控制的Web应用程序。...通过阅读“struts笔记1”,你可以逐步深入地了解这些知识点,并将理论知识与实践相结合,提升自己的技能水平。

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    黑马程序员Struts2笔记

    Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在灵活性和扩展性上的不足。Struts2的核心是Action,它负责接收请求并调用业务逻辑,然后返回结果给用户。 2. **配置Struts2** 在...

    struts2课程笔记

    本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...

    struts 学习笔记(全)

    入门级的struts,适合新手入门

    struts笔记 hibernate笔记

    Struts1是Apache软件基金会下的一个项目,它为Java EE应用程序提供了强大的控制层结构。其核心功能包括请求分发、视图渲染、业务逻辑调用以及异常处理等。以下是一些关键知识点: 1. **MVC模式**:Struts将Web应用...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    跃达创新struts 笔记

    Struts是Apache软件基金会 Jakarta项目下的一个...总结,跃达创新的Struts笔记全面涵盖了Struts框架的核心要素和实际开发中的应用技巧。通过深入学习和实践,开发者可以熟练掌握使用Struts构建高效、可维护的Web应用。

    Struts2_day03笔记

    学习Struts2第三天笔记

Global site tag (gtag.js) - Google Analytics