Struts2入门二 | 学习笔记

简介: 快速学习 Struts2入门二,介绍了 Struts2入门二系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门Struts2入门二】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7288


Struts2入门二

 

课程简介:

一.Struts2框架的作用

二.如何建立 struts


一.通过上述 Struts2这个框架可以做四件事情

1.将 URL Ins 到 HelloAction{ 里面进行处理

package cn . sxt . action ;

public class HelloAction{

public String execute (){

System . out . println (" hello struts2");

return " success ";

}

}

2.封装数据 

3.将响应数据封装好进行渲染

4.跳转路径

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

!-- extends 必须写,直接或者间接继承 struts - default name 自定义﹣->

< package name =" helLo ” extends =" struts - default ">

!-- name 是请求名称,不要写/; clasS 对应 action 完全限定名=包名+类名﹣->

< action name =" hello ” class =" cn . Sxt . action . HeLLoAction ">

<!-- result 是结果集 name 和对应 action 中的方法的返回值匹配,默认是 success -->

く result name =" success ">/ index.jsp </ result >

/ action >(上面绿色部分结果集的跳转已经实现并且映射了相关的 URL

</ package >

public class HelloAction{

public String execute (){

System . out . println (" hello struts2");

return " success ";

}

}

OGNL 表达式如何收集用户数据?该数据如何显示渲染?

通过编写代码体会 struts2的作用


二.如何建立 struts

1. 建立项目

2. 导入 jar 包

3.   找 struts core 包并删除多余部分

< filter >

< filter - name >struts2く/ filter - name >

< filter - class > org . apache .struts2.dispatcher. ng. filter . Strut sPrepareAndExecuteFilter </ filter - class >

</ filter >

filter - mapping >

< filter - name >struts2く/ filter - name >

< url - pattern >*. action く/ url - pattern >       (红色部分很重要)

</ filter - mapping >

4. 配置相关代码

注意:

struts2提交地址默认情况以.action 为扩展名提交(提高效率防止走入过滤器)

action 的扩展名和 web.xml 中配置的 struts2的核心过滤器相匹配;也就是说如果表单中提交的地址以.action 结尾,那么在配置 filter 的 url-pattern 时一定是:

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

可以在 struts 阔包的 properties 中修改配置(如下图所示)

image.png

用户登陆案例

1. 新建 web 项目

2. 导入 struts2的 jar 包

3. 配置 web xml 配置 struts2的核心过滤器

4. 在 scr 编写 struts.xml

5. 编辑 login.jsp

<body>  

<form action=”login.action”method=”post”>

用户名:<input  type=“text”name=“name”/><br>

密码::<input  type=“password”name=”pwd”/><br>

<input  type=“submit”value=”登录“/>

</form>

</body>

6. 编写 LoginAction 类

public class LoginAction{

private String name ;

private String pwd ;       (红色部分为重点!)

//处理方法

public String execute (){

if ("siggy". equals ( name )&&"1111". equals ( pwd )){

return " success ";

}else{ 

return " failed ";

}

}

public String getName (){

return name ;

}

public void setName ( String name ){

this . name = name ;

}

Public String getPwd (){

return pwd ;

}

public void setPwd ( String Pwd ){

this . pwd = pwd ;

}

}

注:

LoginAction 中的属性名和表单中表单元素的名称要一致。第五步和第六步紫色代码。并且为属性提供 get/set 方法。

Struts2自动将用户提交的表单数据设置到 LoginAction 的对应属性上。并且在 jsp 中可以直接获取,不用手动向 request 设置。

7. 配置 struts.xml 中配置 loginaction

< package name =" default ” namespace ="/" extends =" struts - default ”>

<action name =" Login "calss ="cn.sxt.action.LoginAction">

< result  name =" success ">/ success . jsp く/ result >

< result  name =" failed ">/ login . jsp く/ result >

</ action >

</ package >

8. 访问测试

相关文章
|
9月前
|
算法 安全 开发者
优化if-else的11种方案
优化if-else结构的方法多种多样,通过选择合适的方法,可以提高代码的可读性、可维护性和灵活性。本文详细介绍了11种优化if-else的方法,并通过代码示例说明了每种方法的具体应用。希望这些方法能够帮助开发者在实际编程
365 21
|
NoSQL Java 应用服务中间件
大厂面试必备:如何轻松实现分布式Session管理?
这篇文章介绍三种分布式Session的实现方案:基于JWT的Token、基于Tomcat的Redis和基于Spring的Redis。JWT方案通过生成Token存储用户信息,实现无状态、可扩展的会话管理,但可能增加请求负载且数据安全性较低。Tomcat与Redis结合,通过配置Tomcat和Redis,实现Session集中管理和高性能存储,但配置相对复杂。Spring整合Redis适用于SpringBoot和SpringCloud项目,集成方便,扩展性强,但同样依赖外部Redis服务。每种方法有其优缺点,适用场景不同。作者小米是一个技术爱好者,欢迎关注其微信公众号“软件求生”获取更多技术内容
827 4
|
9月前
|
人工智能 JSON 物联网
基于 PAI-ArtLab 使用 ComfyUI 搭建对话式 AI 女友
本实验介绍了一款名为“AI虚拟女友——胡桃”的应用,通过ComfyUI后端与WebUI展示效果,结合LLM节点和知识图谱工具包(KG),实现角色人设稳定及长期记忆功能。用户可通过输入信息与AI互动,并自定义人设知识图谱和角色LoRA。操作步骤包括登录PAI ArtLab平台、加载工作流文件、配置角色参数并与AI对话。此外,还提供了Graph RAG技术详解及常见问题解答,帮助用户更好地理解和使用该系统。
|
存储 SQL 关系型数据库
数据库设计的基本原则和主要步骤以及应注意什么?
数据库设计的基本原则和主要步骤以及应注意什么?
670 0
|
JavaScript 前端开发 安全
跨域解决方案有哪些?
本文介绍了多种跨域解决方案,包括JSONP、CORS、postMessage、WebSocket、document.domain+iframe、window.name、location.hash、Node.js代理、Nginx代理和CORS Anywhere。每种方法都有其适用场景和优缺点,如JSONP简单但只支持GET请求,CORS安全但兼容性稍差,WebSocket适用于实时通信但需服务器支持。开发者可根据具体需求选择合适的跨域方案。
439 3
跨域解决方案有哪些?
|
前端开发 Java Maven
深入解析:如何用 Spring Boot 实现分页和排序
深入解析:如何用 Spring Boot 实现分页和排序
1023 2
|
JavaScript 前端开发
js中通过正则表达式验证邮箱是否合法
这篇文章提供了一个JavaScript示例,通过正则表达式在网页上验证用户输入的邮箱地址是否合法,并给出了相应的提示信息。
js中通过正则表达式验证邮箱是否合法
|
前端开发 JavaScript
node反向代理,解决跨域(http-proxy-middleware)
使用node.js和http-proxy-middleware库实现反向代理,解决跨域问题,允许前端请求通过代理访问不同端口的服务。
617 3
|
SQL 缓存 Oracle
Oracle中序列Sequence详解
Oracle中序列Sequence详解
|
Java 关系型数据库 MySQL
全网最实用的 IDEA Debug 调试技巧(超详细案例)
Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。 今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。
3828 0
全网最实用的 IDEA Debug 调试技巧(超详细案例)