J2EE學習struts

前面講了jsp servlet javabean 的mvc式架構。SSH的目的是爲了強化mvc。首先是jsp和servlet之間。每個jsp都須要一個servlet 。這個加深了程序員沒必要要的工做。struts的工做就是爲了減小jsp和servlet之間的工做。html

1.首先配置web.xml文件,struts2和struts1啓動有很大的不一樣,它是經過過濾器來啓動的,而struts1是經過加載servlet來啓動的,故應向web.xml中加入以下內容:java

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

<url-pattern>  裏填寫要被struts攔截的URL類型。程序員

2.寫struts.xml 配置文件。他的目錄是 WebContent/WEB_INF/classes/struts.xml (目錄classes 不存在就本身建立)。這裏因該是默認會找到struts.xml 文件。也能夠本身指定配置文件路徑。web

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
    <package name="default" extends="struts-default">
        <action name="login" class="example.structtest" method="execute">
            <result name="success">/index.html</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
    </struts>

3.建立jsp提交文件login.jspapache

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
  <head>
    <title>用戶登陸</title>
  </head>
  <body>
<form action="login">
  <input type="text" name="name"><br/>
  <input type="text" name="age"><br/>
  <input type="submit" name="submit" value="登陸"><br/>
</form>
  </body>
</html>

這裏注意,提交的action 和struts.xml的action 要一致。架構

4.建立structtest.java 所屬包是example mvc

package example;

import com.opensymphony.xwork2.ActionSupport;

public class structtest extends ActionSupport {
	private String  name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		 if (getName().equals("1")&&getAge().equals("1")) {
	            return "success";
	        }
	            else return "error";
	}
	
}

5.建立/index.xml /error.jsp。(這個本身寫,再也不貼代碼)app

好了,然咱們看一下流程。jsp

1.首先用戶打開login.jsp頁面。這時候是通過struts2的,由於我在web.xml表示struts的範圍是全部文件。ide

2.用戶填寫好表單,點擊提交。這時候被struts獲取到。不只如此,還在struts.xml裏struts 根據表單的action name找的了struts.xml的action。數據被提交該action所屬的struttest.java 類中。

3.數據被處理了。還獲得了一個String返回值。這時候又回到了struts.xml 。該文件根據返回值對應的result標籤值返回對應的頁面。

具體流程(圖是網上摘錄下來的)

   

 

補充:因爲struts2版本的之間可能會出現錯誤。而且,即便你把全部的有關struts2的jar包放入項目中,也會出現錯誤。本例使用的以下(一共8個,版本2.3.31):

 

相關文章
相關標籤/搜索