Java 37 --- Struts2框架

导读

1.Struts2下载配置
2.Struts2的运用
3.基于注解的Struts2

Struts2下载配置

Struts2优势
1.不需要每个请求写一个Servlet类,可以写到一个action类里,集中管理
2.与jsp的交互更为简洁

第一步:

下载Struts2的jar包官网https://struts.apache.org/
在这里插入图片描述
下载基本包就可以,然后复制到WEB-INF的lib包下边
在这里插入图片描述

第二步:

配置web.xml文件filter

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>javaWeb</display-name>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
 <filter>
 	<filter-name>struts2</filter-name>
 	<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>
 <filter-mapping>
 	<filter-name>struts2</filter-name>
 	<url-pattern>/*</url-pattern>
 </filter-mapping>
  
  
</web-app>

这里注意
在这里插入图片描述

第三步:

在src包下边写struts.xml文件

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

	<package name="default" namespace="/" extends="struts-default">
		<!-- class是调用哪个类,method是调用哪个方法,name是前端访问的url地址 -->
		<action name="signIn" method="signIn" class="com.hala.action.SignAction">
			<result name="in">/index.jsp</result><!-- result代表出口,出口可以有多个,根据返回内容不同而选择 -->
			<result name="out">/main.jsp</result><!-- result中name不写的话,默认为success -->
		</action>
		<action name="signOut" method="signOut" class="com.hala.action.SignAction"></action>
		
		<!-- 这是动态调用的方式 {1}指的是调用name中第一个* -->
		<!-- <action name="sign_*" method="{1}" class="com.hala.action.SignAction"></action> -->
	</package>

</struts>

写好前端jsp或者html文件,启动tomcat可以运行了

Struts2的运用

1.属性驱动:运用get,set方法前后端相互传值

在这里插入图片描述
在这里插入图片描述

2.DomainModel:利用类去传值

在这里插入图片描述

在这里插入图片描述

3.模型驱动

在这里插入图片描述

在这里插入图片描述

4.拦截器的使用

使用拦截器主要是在后端进行验证,同时上边get,set传递也运用了拦截器实现
在这里插入图片描述
在这里插入图片描述
在struts.xml文件中配置,一定要放在所有action上边
在这里插入图片描述

基于注解的Struts2

使用注解可以不用struts.xml文件,但要在原来的基础上多加三个jar包(从官方最全的压缩包的lib包下边找),同时web.xml文件的配置也是必要的,如图:
在这里插入图片描述
Action类

package com.hala.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

@ParentPackage("struts-default")
@Namespace("/")
//下边是全局Results,即这个Action类里所有的方法都可以跳转
@Results({@Result(name="login",location="/login.jsp"),
		@Result(name="error",location="/error.jsp")})
public class HelloAction {
	
	@Action(value="test",
			results= {@Result(name="index",location="/index.jsp",type="redirect")})
	public String test() {
		System.out.println("hello");
		return "index";
	}

}

这里导入包是apache那个
在这里插入图片描述
当然也可以结合struts.xml文件写
在这里插入图片描述

Struts2中转发和重定向
1.struts2中的转发和重定向是由Result的type的决定的,如果type为dispatcher,则为转发,
如果为redirect,则为重定向,默认是转发.
转发是一次请求,重定向是两次请求,这是他们的本质区别,所以转发地址栏不会变化,重定向会变化,
转发可以在域中携带数据,而重定向不可以

2.Struts2中的dispatcher只能转发到jsp或者HTML等视图层

3.Struts2中想将请求转发到某个Action,可以设定Result的type为chain,组成Action链,其他属性一样,如下图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值