struts1.2学习笔记本

Struts1.2功能实战小demo解析 本文还有配套的精品资源,点击获取 简介:Struts1.2是一个用于构建Java Web应用程序的开源框架,通过提供组织应用结构和控制应用程序流程的方式简化开发。本小demo集合旨在演示Struts1.2框架的核心组件和功能,包括ActionServlet控制器、Action业务逻辑处理、ActionForm数据封装、Tiles页面布局、国际化支持、异常处理机制、内置验证框... 阅读详情

http://www.itpob.cn

Struts1.2 学习笔记收藏

 

1        Struts1.2

1.1        Struts内部机制

MVC模式

MVC(Model模型,View视图,Controller控制器)

模型:

用于表示业务数据,调用业务逻辑,由系统状态Bean ActionForm和商业逻辑的JavaBean来构建

视图:

由JSP和Struts提供的自定义标签来实现

控制器:

负责控制流程,由ActionServlet负责读取struts-config.xml,并使用ActionMapping来查找对应的Action

 

1.2        添加Struts开发环境

1.2.1       使用MyEclipse添加

MyEclipse->add struts capabilities

Struts支持的包列表:

l         antlr.jar

l         commons-beanutils.jar

l         commons-digester.jar

l         commons-fileupload.jar

l         commons-logging.jar

l         commons-validator.jar

l         jakarta-oro.jar

l         struts.jar

 

1.2.2       Struts配置文件列表:

在/WebRoot/WEB-INF下添加了下列配置文件

l         struts-config.xml

l         struts-config.mex

l         struts-html.tld

l         struts-bean.tld

l         struts-logic.tld

l         struts-tiles.tld

l         struts-nested.tld

 

1.2.3       手动添加

1、  添加Struts的jar支持包(8个)

…/WebRoot/WEB-INF/lib目录下

2、  添加Struts的tld标签文件(5个)

…/WebRoot/WEB-INF目录下

3、  添加Struts的核心配置文件Struts-config.xml

…/WebRoot/WEB-INF目录下

4、  在web.xml中添加Struts的ActionServlet配置

…/WebRoot/WEB-INF目录下

 

1.2.4       配置Struts日志组件

1、  添加日志组件包

Log4j-1.2.12.jar、commons-logging.jar,复制这两个文件到项目/WebRoot/WEB-INF/lib目录下即可。

2、  添加日志配置文件

commons-logging.properties(放入项目/WebRoot/WEB-INF目录下)

log4j.properties (放入项目web-inf/class目录下)

3、  修改commons-logging.properties调用log4j

在默认情况下commons-logging.properties中会配置使用SimpleLog,要配置使用Log4j,只需注释掉SimpleLog行,添加log4j即可

##set Log as Log4J

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

## set Log as SimpleLog

#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

4、  Log4j配置文件log4j.properties

## LOGGERS ##

#define a logger

log4j.rootLogger=INFO,console,file

## APPENDERS ##

# define an appender named console, which is set to be a ConsoleAppender

log4j.appender.console=org.apache.log4j.ConsoleAppender

# define an appender named file, which is set to be a RollingFileAppender

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=../logs/jdbc_bk.log

#set the log's size

log4j.appender.file.MaxFileSize=1000KB

log4j.appender.file.MaxBackupIndex=20

## LAYOUTS ##

# assign a SimpleLayout to console appender

log4j.appender.console.layout=org.apache.log4j.SimpleLayout

# assign a PatternLayout to file appender

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}] %m%n

注:

log4j.properties文件需要放到web-inf/class目录下面,在eclipse里面放到src目录下面,会自动拷贝到class目录下面去。否则在tomcat启动的时候,会出现以下警告,且日志不会输出。

log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.

 

1.3        工作流程

1、  输入表单页面

如:

    <form action="test.do" method="post">

    <input type="text" name="str1">

    <input type="text" name="str2">

    <input type="submit">

    </form>

2、  ActionServlet接收用户请求(Request)

在Web.xml中定义

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

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

  </servlet-mapping>

表示Struts能够接收*.do的请求

 

3、  ActionMapping映射Action

通过struts-config.xml中的<action-mappings>来对应Action类

   <action-mappings>

    <action path="/test" name="testForm" scope="request"

        type="com.demo.struts.forms.TestAction" input="/input.jsp">

        <forward name="success" path="/success.jsp"></forward>

        <forward name="failure" path="/error.jsp"></forward>

    </action>

  </action-mappings>

此处的test对应test.do

 

4、  ActionMapping映射ActionForm

通过struts-config.xml中的<form-beans>来对应ActionForm类

  <form-beans>

<form-bean name="testForm" type="com.demo.struts.forms.TestForm"></form-bean>

  </form-beans>

此处name="testForm",对应<action-mappings>中的name="testForm"

 

5、  ActionForward转发

Action处理完后返回ActionForward对象,对应<action-mappings>中转发的URL

    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        ActionErrors errors=new ActionErrors();

        TestForm testForm = (TestForm) form;

        ActionForward forward =new ActionForward();

        try{

            String str1=testForm.getStr1();

            String str2=testForm.getStr2();

        }catch(Exception e){}

        if(!errors.isEmpty()){

            forward=mapping.findForward("failure");

        }else{

            forward=mapping.findForward("success");

        }

        return forward;

    }

此处的failure,success分别对应:<action-mappings>中的forward

 

1.4        Struts配置文件详解

1.4.1       配置ActionForm:<form-beans>元素

1.4.2       配置映射关系:<action-mappings>

1.4.3       其他

1.4.4       分离Struts配置文件

 

1.5        ActionForm Bean开发技术

1.5.1       使用默认表单ActionForm

org.apache.struts.action.ActionForm

    表示HTTP窗体中的数据,可以将其看做是模型和视图的中介

1.5.2       使用动态表单DynaActionForm

    org.apache.struts.action.DynaActionForm

1.5.3       使用自动校验表单

    org.apache.struts.validator.DynaValidatorForm

其中validator.xml和validator-rules.xml分别表示验证定义和验证规则的内容

 

1.6        Action组件开发技术

org.apache.struts.action.*

1.6.1       使用默认的Action

注:视图级的验证工作放在ActionForm来完成,比如输入不能为空、E-Mail格式是否正确等;而与具体业务相关的验证则放入Action中,这样就可以获得最大ActionForm重用性的可能。在执行业务逻辑的JavaBean中不要引用任何与Web应用相关的对象,比如HttpServletRequest、HttpServletResponse等对象,而应该将其转换为普通的Java对象

1.6.2       可直接转发的ForwardAction

 

1.6.3       可包含文件的IncludeAction

1.6.4       可自动分发的DispatchAction

    通常,如果继承默认的Action类,只能完成一种业务操作。如果要完成一组业务操作,例如对用户进行update、insert、delete操作,则需要建立多个操作类,分别来接收响应。但DispatchAction来实现函数的分发。它的作用就是实现按业务实体划分类。

1、<action>中添加一个parameter

<action path="/test" parameter=”method” name="testForm" scope="request"

        type="com.demo.struts.forms.TestAction" input="/input.jsp">

        ...

    </action>

 

在<form>请求地址中传递了参数”method=test”

<form action="test.do?method=test" method="post">

        ...

</form>

 

在Action类中新建参数值对应的函数

public ActionForward test(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        ...

        return forward;

    }

 

1.6.5       可进行多个提交的LookupDispatchAction

 

 

1.6.6       可实现交换的SwitchAction

 

1.7        使用Struts标签进行页面国际化

1.7.1       软件国际化与本地化

I18N:Internationalization的缩写,意即在i和n之间有18个字母,本意是指软件的“国际化”。支持多种语言,但同一时间只能是英文和一种选定的语言,例如英文+中文。

L10N:Localization。本意是软件的“本地化”。支持2种语言,英文和另外一种语言(例如中文)

M17N:Multilingualization。本意指软件的“多语言库”,用以实现各国语言间的代码移植。可以在同一时间支持多种语言,例如你可以在一个页面里看到中文、英文、德文等。

 

1.7.2       软件本地化的设置方法

1、  用户在软件操作界面中选择需要显示的语言来显示该软件。

2、  软件根据操作系统的语言设置,自动显示默认的操作语言。

为IE添加英语和中文显示的列表,工具->Internet选项->语言。

 

1.7.3       软件编码

1、  ASCII(单字节)

编码字符集:ISO-8859-1

英文DOS

2、  ANSI编码(双字节)

GB2312、BIG5等,中文DOS、中文/日文Windows95/98

3、  Unicode编码

UTF-8、UTF-16、UTF-32,WindowsNT/2K/XP、linux

 

1.7.4       Java对国际化的支持

1、  Locale类

Java.util.Locale类是最重要的Java I18N类

1)  通过构造函数创建Locale对象

如:

Locale chLocale=new Locale(“zh”,”CN”);//中国中文

第一个参数是语言代码,语言代码由两个小写字母组成,遵从ISO-639规范。

第二个参数是国家代码,由两大写字母组成,遵从ISO-3166规范。

 

使用默认定义的Locale对象

Locale locale1=Locale.JAPAN;

Locale locale2=new Locale(“ja”,”JP”);

取得操作系统的默认Locale对象

Locale defaultLocale=Locale.getDefault();

在Web应用中访问客户端的Locale对象

调用HttpServletRequest对象的以下两个方法来取得包含Web客户的Locale信息

Public java.util.Locale getLocale();

Public java.util.Enumeration getLocales();

 

ResourceBundle类

Java.util.ResourceBundle类提供存放和管理与Locale相关的资源的功能。这些资源包括文本域、按钮的Label、状态信息、图片名、错误信息和网页标题等。

 

1.7.5       Struts对国际化的支持

1、  创建Struts的ResourceBundle资源文件

2、  访问Resource Bundle资源文件

3、  在Struts应用中访问Resource Budle的方法

4、  在Struts应用中访问Resource Budle的组件。

 

1.7.6       Struts页面国际化的过程

1、  定义Struts的资源文件

在strust-config.xml中通过<message-resources>定义

<message-resources parameter="com.demo.struts.ApplicationResources" />

 

2、  创建Struts的资源文件

我们应该在包com.demo.struts.resources中创建UTF-8资源文件,这里的资源文件会被编译到/WEB-INF/classes/com.demo.struts.resources下。每一个资源文件是“键=值”对的集合。

资源文件的格式为:默认资源文件名_国别_语言.properties。其中每个文件都是通过%JAVA_HOME%/bin/native2ascii.exe工具转换而来。

如:

//ApplicationResources.properties;默认资源文件,通常里面的内容是英文的

Label.name=USERNAME;

Lable.password=PASSWORD;

 

//ApplicationResources_zh_CN.bak;默认资源文件,通常里面的内容是英文的

//它需要工具将其中的内容处理成UTF-8

Label.name=用户名;

Lable.password=密 码;

上面的中文资源文件中写的是中文,还需要用如下的命令专为UTF-8编码的资源文件。

native2ascii -encoding utf-8 ApplicationResources_temp.properties ApplicationResources_zh_CN.properties

 

3、  定义JSP页面的字符集合

<%@ page contentType="text/html;charset=UTF-8"%>

 

4、  在JSP页面获取资源文件里面的内容

<table width="200" border="1">

    <tr>

        <td align=”right”><bean:message key=”label.username”></td>

    </tr>

    <tr>

        <td align=”right”><bean:message key=”label.password”></td>

    </tr>

</table>

在这个页面显示的时候,如果客户的IE的语言集合是zh_CN的话,就会显示:

用户名:

密  码:

如果客户的IE的语言是en的话,就会显示:

USERNAME:

PASSWORD:

 

1.7.7       Struts HTML标签

使用Struts HTML标签需要通过以下配置

1、  在web.xml中注册标签库

2、  确信将struts-html.tld文件复制到WEB-INF目录中。

3、  在运用标签库的每个JSP页面中,插入下面的<taglib>指示符

1.7.7.1             用于生成基本的HTML元素的标签

1、  <html:html>标签

用于生成HTML的<html>元素

2、  <html:base>

3、  <html:link>

4、  <html:rewrite>

1.7.7.2             用于生成HTML表单的标签

1、  <html:form>

2、  数据输入标签

<html:text>

<html:password>

<html:hidden>

<html:textarea>

<html:radio>

<html:checkbox>

<html:select>

<html:option>

3、  提交按钮标签

<html:submit>

<html:cancel>

<html:reset>

<html:button>

<html:image>

1.7.7.3             用于显示错误或正常消息的标签

<html:errors>:用于显示错误消息

<html:messages>:用于显示正常消息

 

1.7.8       Struts Bean标签

1.7.8.1             用于访问HTTP请求信息或JSP隐含对象

1、  <bean:cookie>

2、  <bean:header>

3、  <bean:parameter>

4、  <bean:page>

 

1.7.8.2             用于访问Web应用资源

1、  <bean:message>:用于显示ResourceBundle 中的消息。

用来从指定的locale中取回国际化的消息并输出。这个过程可以传递5个以内的参数。Message标签有两种指定message key的方式,一是通过key属性直接指定;二是通过name和property属性间接的指定,其中message key是在message resources文件中定义的。

如:

<bean:message key=”login.page.title”>

2、  <bean:resource>

3、  <bean:struts>

4、  <bean:include>

 

1.7.8.3             用于定义或输出JavaBean的Bean标签

1、  <bean:define>

2、  <bean:write>

3、  <bean:size>

 

1.7.9       Struts Logic标签

1.7.9.1             进行比较运算的Logic标签

<logic:equal>

<logic:notEqual>

<logic:greaterEqual>

<logic:greaterThen>

<logic:lessEqual>

<logic:lessThan>

1.7.9.2             进行字符串匹配的Logic标签

<logic:match>

<logic:notMatch>

1.7.9.3             判断指定内容是否存在的Logic标签

<logic:empty>和<logic:notEmpty>

<logic:present>和<logic:notPresent>

<logic:messagesPresent>和<logic:messagesNotPresent>

1.7.9.4             进行循环遍历的Logic标签

<logic:iterate>

1.7.9.5             进行请求转发或重定向的Logic标签

<logic:forward>

<logic:redirect>

 

1.8        Struts数据验证

1.8.1       使用Validator校验器组件

ActionForm Bean提供了Validator的一个ActionForm子类,它提供验证或存储错误消息的功能

Validator使用两个XML配置文件来分别确定安装哪个验证程序,以及如何将它们用于给定的应用程序

Validator-rules.xml:说明应该被插入到框架中的验证程序,并提供每个验证的逻辑名称

Validation.xml:确定哪个验证程序应用到哪个ActionForm Bean。

配置使用Validator

1、  在struts-config.xml中配置使用validator插件

   <plug-in className="ora.apache.struts.validator.ValidatorPlugIn">

    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,

    /WEB-INF/validation.xml" />

  </plug-in>

注:你的应用程序的struts-config.xml文件必须与Struts Configuration Document Type Definition(Struts配置文档类型定义,DTD)一致,后者规定文件中元素出现的顺序。所以必须把Validator插件定义放到该文件的适当位置,一般放到<message-resources>下

 

2、  Validator验证程序配置文件validator-rules.xml

 

3、  使用Validator的两个父类来创建自己的表单类

为了使用Validator,你的应用程序的ActionFormBean必须归到Validator的ActionForm的某一子类。Validator提供了两个父类ValidatorForm和DynaValidatorForm

1)     使用普通的验证表单类ValidatorForm

在struts-config.xml文件中配置这个特定的ActionForm Bean,与配置正常的方法相同

<form-bean name="loginForm" type="com.demo.struts.forms.LoginForm"></form-bean>

 

2)     使用动态表单类DynaValidatorForm

<form-bean name="loginForm"

            type="org.apache.struts.validator.DynaValidatorForm">

    <form-property name=”username” type=”java.lang.String”/>

    <form-property name=”password” type=”java.lang.String”/>

</form-bean>

 

4、  配置表单的验证规则validation.xml

用于声明将应用到ActionForm Bean的一组验证。

 

5、  绑定验证中的错误消息ApplicationResources.properties

使用Struts的资源绑定(Resource Bundle)机制将错误消息具体化。

 

1.8.2       在ActionForm中检验合法性

Validator框架针对表单数据的验证提供了可配置的系统,从而为核心Struts框架添加了很多有价值的功能。然而Validator的开发和配置过程,被设计了多个额外的配置文件,无疑让开发更加复杂化。

我们可以在ActionFormBean对象的validate()方法中编写验证逻辑代码。此外,还必须编写代码来存储验证失败的出错消息。

1.8.2.1             为ActionForm添加表单验证功能

1、  添加一个验证函数validate(),该函数继承其父类ActionForm

     public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {

         ActionErrors errors=new ActionErrors();

         String queryString=arg1.getQueryString();

         if(queryString.equalsIgnoreCase("method=register")){

              if(username==null||username.equals("")){

                   errors.add("username", new ActionMessage("register.error.username"));

              }

              if(password1==null||password1.equals("")){

                   errors.add("password1", new ActionMessage("register.error.password1"));

              }

              ...

         }

         arg1.setAttribute("registerFormBean", this);

         return errors;

     }

 

2、  ApplicationResources.properties中添加标签

#loginForm

login.error.username=用户名不能为空

login.error.password=密码不能为空

 

3、  JSP页面中输出错误信息

              <tr>

                   <td><bean:message key="login.page.username" /></td>

                   <td><input type="text" name="username">                                                      <html:errors property="username"/>

                   </td>

              </tr>

 

1.8.2.2             为Action添加逻辑验证功能

1、  Action的execute()中修改检验代码

errors.add(ActionErrors.GLOBAL_MESSAGE,new ActionMessage("login.message.failed"));

2、  ApplicationResources.properties中添加标签

#loginForm

login.message.failed=用户名或密码不存在!

3、  JSP中输出这个全局错误信息

    <html:errors property="org.apache.struts.action.GLOBAL_MESSAGE"/>

 

1.8.2.3             验证出错时维持表单输入

1、  ActionForm的validate()后面添加如下代码

request.setAttribute("loginFormBean", this);

2、  在Action的execute()后面添加

request.setAttribute("loginFormBean", loginForm);

3、  修改JSP表单

              <tr>

                   <td><bean:message key="login.page.username" /></td>

                   <td>

                       <logic:present name="loginFormBean">

                        <html:text property="username" name="loginFormBean" />

                    </logic:present>

                    <logic:notPresent name="loginFormBean">

                            <input type="text" name="username">

                       </logic:notPresent>

                       <html:errors property="username"/>

                   </td>

              </tr>

使用<logic:present>标签判断Bean对象loginFormBean是否存在,如存在则使用<html:text>输出属性”username”的值;如不存在,则依然输出空的HTML表单

struts1.2-jar包 struts1.2jar包(antlr.iar , commons-beanutils.jar , commons-digester.jar ,commons-fileupload.jar ,commons-logging.jar ,commons-validator.jar ,jakarta-oro.jar ,struts.jar等) 立即下载

相关推荐

struts1.2包

Struts框架所需的包(commons-beanutils.jar、commons-collections.jar、commons-digester.jar、commons-fileupload.jar、commons-logging.jar、commons-validator.jar、struts.jar、jtds-0.8.1.jar)

Struts1.2 学习笔记

 1        Struts1.21.1        Struts内部机制MVC模式MVC(Model模型,View视图,Controller控制器)模型:用于表示业务数据,调用业务逻辑,由系统状态Bean ActionForm和商业逻辑的JavaBean来构建视图:由JSP和Struts提供的自定义标签来实现控制器:负责控制流程,由ActionSer

Rolling的专栏 2399

Struts 1.2 简单 实例

包括: 四个页面:index.jsp logon.jsp show.jsp error.jsp 两个Form:RootForm.java LogonForm.java 两个Action:RootAction.java LogonForm.java 说明文档链接:http://blog.csdn.net/lukelsq/archive/2010/06/21/5684325.aspx

Structs1.2的HelloWorld

Structs1.2的HelloWorld 一、工作原理   1.初始化 :struts框架的总控制器ActionServlet 是一个Servlet ,它在web.xml中配置成自动启动的Servlet ,在启动时 总控制器会读取配置文件(struts-config.xml)的配置信息 ,为struts中不同的模块初始化相应的对象 2.发送请求 :用户提交表...

dampce32的专栏 212

struts1.2资源整合

struts1.2源码.rar 核心源码 struts-1.2.4-lib Struts1.2API chm格式

struts1.2的各项功能小demo

自己做的小demo,struts1.2最常用的各项功能都已经整合。

Structs1.2的表单验证

Structs1.2的表单验证 一、表单验证? 对用户提交的表单进行验证,可以分为客户端验证和服务器端验证。 Struts1.2中用Form来收集表单中的信息,因此我们对表单的验证是围绕着不同的Form来进行的 二、ActionForm (1)我们在new Action,Form&amp;Jsp时继承ActionForm 而对表单的验证则放在了生成的Form中的...

dampce32的专栏 227

Struts1.2

NULL 博文链接:https://kellhan.iteye.com/blog/1147307

Struts1 和 Struts2

关于Struts2的出现缘由和好处就不多说啦,看了几篇总结的不错的文章,整理下贴出来,共同学习了。 Action的区别 对于有着丰富的Struts1.x开发经验的朋友来说,都十分的清楚Action是整个Struts框架的核心内容,当然Struts2也不例外。不过,Struts1.x与Struts2的Action模型很大的区别。 Struts2和Struts1.x的差别,最明显的就是Strut

袁伏彪 —— 共享,共赢 2万+

基于STM32F103的二维码识别项目——OV7670篇

此系列用于记录做过的项目,这篇文章介绍基于STM32F103的二维码识别项目之OV7670FIFO模块。

beyourself_he的博客 4288

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

在3GPP R17协议中,将NB-IoT集成到了NTN(非陆地网络,即卫星通信)中,并定义了一个系统架构。在这个架构中包括一个可配置再生payload的低轨道(LEO)卫星,这意味着该卫星可以执行传统基站的全部或部分功能。该系统架构还可以适配同步轨道(GEO)卫星,这些卫星与LEO卫星类似,也可以配置再生payload。系统高度范围轨道波束覆盖范围LEO300~1500km绕地球转100~1000kmGEO35786km与地球自转同步200~3500km。

2401_84010302的博客 3568

struts1与struts2的对比学习

Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。 FilterDispatcher是控制器的核心,就是mvc中c控制层的核心。下面粗略的分析下我理解FilterDispatcher工作流程和原理:FilterDispatcher进行初始化并启用核心doFilter。该控制器作为一个Filter运行在Web应用中,它负

变是永远不变的...... 1302

5分钟搞懂知识抽取:如何把非结构化数据变成知识图谱的宝藏?

本文通过一个电商评论分析实战案例,详细解析了如何利用spaCy、Neo4j等工具,将非结构化文本数据转化为结构化知识图谱的完整流程。文章重点阐述了知识抽取的核心步骤,包括命名实体识别、关系抽取以及知识存储与查询,帮助读者快速掌握将数据转化为知识宝藏的关键技术。

weixin_29054245的博客 235

Struts2与Struts1的对比学习(一)

写在前面: Struts1官方已经停止更新,现在用的也比较少,但是了解Struts1可以帮助我们更好的理解Struts2. 我们不能简单的把Struts2理解为Struts1的升级,甚至可以说这样理解是错误的。Struts2与Struts1有巨大的差别,Struts2以WebWork为核心,吸收了Struts1的优点,尽量解决Struts1存在的问题。正是这种差距,将两者放到一起对比,可以更好的理解

区块链领域填坑的java程序猿 2338

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2076

PADS VX2.4 缝合孔(阵列过孔)的添加方法

缝合孔的主要目的是:①:增加底层和顶层的地铜皮的连接性,②:起到屏蔽外界信号干扰的作用。铺完铜后,右击空区域选择“选择形状”命令,选取整板中的一块大铜皮,右击选择“覆铜区域内过孔阵列模式”→“沿周边”指令后,再右击选择“覆铜区域内过孔阵列”,便能看到已选区域内添加的缝合孔(过孔阵列),也可以通过铜皮显示或隐藏的无模命令:PO进行查看。完成上面的“防止错误”和“过孔样式”的设置后,开始对整板进行铺铜处理,点击“工具栏”→覆铜平面指示器,在弹出的对话框点击“开始”,便能观察铺铜后的板子。

tianpu2320959696的博客 3055

通过实例学习Struts2 - 从struts-blank开始 (1)

前言 一直用Struts1 , 现在新的项目要转向Struts2了, 先研究学习一下,做点技术储备。 我一直认为计算机软件行业是一个实践性非常强的行业,书读了多少都不管用, 一定要卷起袖子,亲自动手,才能学到一门技术的精髓,才能谈得上精通。 否则浮在表面,只懂概念,夸夸奇谈,一进入真正的项目就傻眼了。 但是自己完全从零开始来学习一个技术还是太慢了,一定要找到一个切入点, 就像打仗一样,

Be yourself and Beyond yourself 1万+

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58= GetFlowDropDown SQL注入

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58=、eHR/OA一体化智慧云平台、智慧一卡通云平台、行业软件开发与定制、智慧企业管理信息化咨询与项目服务为核心业务的顾问式管理咨询和软件个性定制开发的高科技股份集团公司。同鑫T9eHR信息华管理系统存在SQL注入漏洞,攻击者可通过该漏洞上传shell。关闭互联网暴露面或接口设置访问权限。利用sqlmap进行shell。

iSee857的博客 701

Struts1和Struts2对比

最近学习了Struts1和Struts2.很多人、很多资料都提到。Struts2不是从Struts1发展而来的。Struts2的前身是WebWork。那它俩到底有多大的不同呢,看了一些资料,下边就来比较比较。一、架构分析Struts1的架构图: 执行流程: 1.用户在浏览器端发送请求,服务器(比如:Tomcat)创建HttpServletRequest和HttpServletResponse对象

大道至简 1699

python实现DoIP基本通信(收发报文)

python实现DoIP基本通信(收发报文)

天赐好车的博客 896

windsurf中出现无法Connecting to server的解决方案

本文主要介绍了windsurf中出现无法Connecting to server的解决方案,希望能对使用windsurf的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 6万+

已经会struts1.x了为何还要学习struts2呢

重庆邮电大学 pppz(Java学生) 1282

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Struts1与Struts2

Struts1就不多说了,它遵循并实现了MVC的设计思想,在传统的SSH架构中体现着至关重要的作用。        今天我们主要说说Struts2,并简单对比一下Struts1和Struts2,供大家学习和参考。

劝学 786

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Struts2与Struts1的对比学习(二)

概述下图是对两者区别的一个整理: 我们来详细的介绍一下各个方面的区别Action实现类Struts1要求Action类继承一个抽象基类;Struts1的一个具体问题是使用抽象类编程而不是接口。Struts2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实

区块链领域填坑的java程序猿 1434

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

struts1.2 和 struts2 配置详解

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Style

你的专栏 3441

学习struts2框架(1)

今天和同学一起说要做一个项目,使用ssh框架,那就开始学习呗。 什么是strut2: Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业

wang735019的专栏 976
上一篇: 《ExtJS2.0实用简明教程》之ExtJS简介
下一篇: 今天来到优快云学生大本营
Micheal_NET
博客等级 码龄19年 146粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值