当前位置:首页 » 文件管理 » struts2ftp

struts2ftp

发布时间: 2022-08-19 11:54:33

㈠ 怎么配置struts2.0

struts2.0 配置篇

1、web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<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>
</web-app>

其中,绿底色的部分是通用的部分。

2、struts.xml文件
这个文件的配置是最为重要的,也是比较容易出问题的地方,初学者对其中很多的参数不太明白,导致调试时候经常出错。下面先给出一个配置的代码:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="package1" extends="struts-default">
<action name="Hello" class="tutorial.HelloWorld">
<result>HelloWorld.jsp</result>
</action>
<action name="HelloWorld" class="package1.HelloWorld">
<result>HelloWorld.jsp</result>
</action>
</package>
</struts>
1)对于<include file="struts-default.xml"/>这行代码,可以要也可以不要。
2)package的name是可以虚构的,并不一定要在classes目录下要有一个与这个name名对应的包名;像上面的配置文件中的name="package1"可以随便改成name="aaa"等是不影响结果的,只不过这个package名可以使得多个action聚合在一起,对大型的模块设计的时候是很有帮助的。
3)<action name="HelloWorld" class="package1.HelloWorld">中的HelloWorld这个name并不一定要与package1包中的类名相同,比如<action name="Hello" class="tutorial.HelloWorld">这样两个名字完全不一样是可以的,但是"Hello"这个name必须与输入的jsp页面里面的action内容是一致的,如<s:form action="Hello">
4)从上面的配置文件可以看出,在classes目录下面有两个包,一个是tutorial,一个是package1。

3、struts.properties文件
这个文件最简单,它与struts.xml文件一样,都是位于classes目录下面。其内容为:
struts.devMode = true
struts.enable.DynamicMethodInvocation = false的

4、建议初学者先看看为Struts 2.0做好准备这篇文章,这里每个步骤讲的非常的详细,但是有些细节作者没有写出来,让很多初学者调试的时候出很多错误,比如The requested resource (/项目名/HelloWorld) is not available.,java.lang.NullPointerException等等。
1)关于工具web tools platform,这是一个eclipse集成了很多web开发下所需工具的一个比较好的平台,它在eclipse的网站下面http://www.eclipse.org/webtools/有下载。打开这个页面的右边download栏目下面有wtp的下载,点击这个去下载,如果不行,就再仔细找找了。
2)如果出现The requested resource (/项目名/HelloWorld) is not available.的话,就仔细找找看是不是输入的时候把配置文件等等地方写错了,对于初学者最容易把其中的字母搞错,比如struts是不写成了其它的形式,反正出现这个错误就是说访问的资源不存在,那就肯定要么是配置文件出错了,要么是你的类文件没有放在classes目录下面,无外这两种情况。错了不要紧,没有错误,哪会有进步呢。
3)如果你真的发现什么错误都没有,但就是尽管调试了半天还是调试不成功,那就考虑你的JDK版本是不是和你下载的wtp搭配了,建议把原来低版本的JDK卸载,装上新去下载的JDK,写这篇博客时,最新版本是jdk-1_5_0_10。如果还不行,你就把tomcat或者其它的web服务器换版本,总之要不怕错误和失败,要勤于不断的调试。
网络博客虽然访问速度快,但是连粘贴个代码都不方便,真希望能改进改进。

㈡ struts和struts2的区别是什么

你问的应该是 struts1 和struts2 的区别:
Struts2与Struts1的对比

1,在Action实现类方面:
Struts1要求Action类继承一个抽象基类;Struts1的一个具体问题是使用抽象类编程
而不是接口。Struts2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制服务成为可能。
Struts2 提供一个ActionSupport基类 去实现常用的接口。即使Action接口不是必须实现的,只有一个包含
execute方法的POJO类都可以用作Struts2的Action。

2,线程模式方面:
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能做的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的;Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。

3,Servlet依赖方面:
Struts1 Action依赖于Servlet API,因为Struts1 Action的execute方法中有HttpServletRequest和HttpServletResponse方法。
Struts2 Action 不再依赖于ServletAPI,从而允许Action脱离Web容器运行,从而降低了测试Action的难度。当然,如果Action 需要直接访问HttpServletRequest和HttpServletResponse参数,Struts2 Action仍然可以访问它们。但是,大部分时候,Action都无需直接访问
HttpServletRequest和HttpServletResponse,从而给开发者更多灵活的选择。

4,可测试方面:
测试Struts1 Action的一个主要问题是execute方法依赖于Servlet于ServletAPI, 这使得Action 仍然的测试要依赖于Web容器。为了脱离Web容器测试Struts1 的Action, 必须借助于第三方扩展:Struts TestCase,该扩展下包含了系列的Mock对象,从而脱离Web容器测试Struts1的Action类。
Struts2Action可以通过初始化,设置属性,调用方法来测试。

5,封装请求参数方面:
Struts1 使用ActionForm对象封装用户的请求参数,所有的ActionForm 必须继承一个
基类:ActionForm。 普通的JavaBean不能用作ActionForm因此,开发者必须创建大量的ActionForm类封装用户请求参数。虽然Struts1 提供了动态ActionForm 来简化ActionForm 的开发,但依然需要在配置文件中定义ActionForm; Struts2 直接使用Action 属性来封装用户请求属性,避免了开发者需要大量开发ActionForm类的繁琐,实际上,这些属性还可以是包含子属性的Rich对象类型。如果开发者依然怀念Struts1 ActionForm 的模式
Struts 2 提供了ModelDriven 模式, 可以让开发者使用单独的Model 对象来封装用户请求参数,但该Model对象无须继承任何Struts2基类,是一个POJO,从而
降低了代码污染。

6,表达式语言方面:
Struts1 整合了JSTL,因此可以使用JSTL表达式语言。这种表达式语言有基本对象图遍
历,但在对集合和索引属性的支持上则功能不强
Struts2 可以是用JSTL,但它整合了一种更强大和灵活的表达
式语言:OGNL(Object Graph Notation Language),因此,Struts2下的表达式语言功能更加强大。

7,绑定值到视图方面:
Struts1 使用标准JSP机制把对象绑定到视图页面;
Struts2 使用“ValueStack”技术,使标签能够访问值,而不需要把对象和视图页面绑定在一起。

8,类型转换的方面:
Struts 1 ActionForm 属性通常都是String 类型。 Struts1 使用
Commons-Beanutils 进行类型转换,支持基本数据类型和常用对象之间的转换。

9,数据校验的方面:
Struts1 支持在ActionForm 重写 validate方法手动校验,或者通过整合Commonsalidator框架来完成数据校验。
Struts2 支持通过重写validator方法进行校验,也支持整合XWork校验框架进行校验

10,Action执行控制的方面:
Struts1 支持每一个模块对应一个请求处理(既生命周期的概念),但是模块中的所有Action必须共享相同的生命周期。
Struts2支持通过拦截器堆栈为每一个Action 创建不通的生命周期。开发者可以根据需要创建相应堆找,从而和不同的Action一起使用。

sql2005 仅struts2框架 配数据库连接池 失败啊。 Cannot create PoolableConnectionFactory

首先确认你的密码是不是对的。如果是对的:
所有程序 -> Microsoft SQL Server 2005 ->配置工具 ->SQL Server Configuration Manager
选择:SQL Server 2005网络配置,然后选择:MSSQLSERVER 的协议 ,然后将TCP/IP右键启动,然后右键TCP/IP,选择属性,选择IP地址,在IP1下边的“已启用”,选择“是”...然后重启服务..................OVER!

㈣ struts2怎么在服务器上创建一个空文件夹

像在桌面创建一样~
如果是ftp传~你可以先在自己桌面设置好再传上去啊!

㈤ struts2存在命令执行漏洞,上传webshell文件等什么意思

就是控制网站 传一个脚本木马上去 (可以是一句话,用中国菜刀控制你的网站 或者直接传jsp大马控制)。最起码有相当于你网站的ftp权限。Windows的服务器一般jsp的脚本权限都是系统权限,linux也权限很高。

㈥ struts2.0的工作原理

客户端发出一个请求,服务器端接收请求。

如果该请求是一个以 .action 结尾请求,则Struts2将请求转发至相应的Action,进行数据类型转换,如果数据类型转换出错,则返回到 input 指定的结果页面。

如果数据类型转换没有出错,则调用setXX 方法进行设值,如果使用了validate()验证方法(或者是使用了验证框架),则进行相应的验证。

如果验证出错,回到 input 指定的结果页面。

如果没有使用验证,或者验证没有出错,则执行 execute() 方法,返回到相应的页面。

(6)struts2ftp扩展阅读:

Struts2流程注解

当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。

经过Other filters(SiteMesh ,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。

FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。

ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。

拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。

㈦ java实现FTP文件上传功能的原理是什么

。。参照ftp协议。直接用socket发送就行了。。。ftp本来控制信息就不是很复杂的。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:31
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:731
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:247
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:837