首先简单介绍下:在eclipse以前的版本都可以使用eclipse自带的集成三大框架,而从eclipse8后,Apache公司就将该功能去掉,所以现在如果是8以上的eclipse集成ssh的话,就需要去下载jar进行自行配置,下面我就详细的按照最新eclipse10进行三大框架的配置部署,以及三大框架的版本不同,而产生的一系列问题
eclipse8以前的集成框架方式很简单:直接右键项目,然后myeclipse或者是eclipse就会在右侧弹出来集成的方式,选择对应就好了,这里就不过多描述,下面看最新eclipse集成方式:
第一:下载对应的三大框架的JAR包
struts-2.5.22-all.zip:链接:https://pan.baidu.com/s/1Jmr6C6RN6ewjgSWYPi5BLw 提取码:dkfh
hibernate-search-5.8.0.Final-dist.zip: 链接:https://pan.baidu.com/s/1PzQtK5orJQKgbHpRkBtJpA 提取码:d6zx
spring-framework-4.3.8.RELEASE-dist.zip:链接:https://pan.baidu.com/s/11YyAht2shvac10j-ZGrZQA 提取码:74nr
mybatis-3.5.2.zip:链接:https://pan.baidu.com/s/1tLO3LNoJ6dxc0o-ihmSeCg 提取码:3tg2
tomcat6.0: 链接:https://pan.baidu.com/s/1L_SNZbCTMh1zCzxEf231MQ 提取码:rnqu
第二步:eclipse新建web项目
当然新建的时候需要注意下,最新 eclipse是不会默认简历web文件的,所以这里需要勾选下:
第三步:然后解压【struts-2.5.22-all.zip】,找到改路径下所有jar:
然后把下图需要的jar,从上图拷贝到工程目录下的lib文件下 (这里说明下,2.5以后的struts已经将log4-core已经xwork全部都整合到struts-core里面了,所以这里没有必要在去下载这两个jar)
第四步:配置web.xml文件,注意:由于struts版本不同所以其配置的过滤器写法上略有差异,我们一般参照官方给的模板
<?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>SSHproject</display-name>
<!--拦截器-->
<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>
这里需要注意下就是filter-class的值,因为当启动服务器的时候,服务器会调用web.xml,然后执行这个fliter-class所指向的类文件,调永里面的init()方法进行初始化赋值,这个地方,不能直接复制过去,要看自己的实际路径,不然启动的时候就会报下图错误,因为这个类找不到,所以就报错了,所以这里这个值,要按照自己实际的来写:
实际的路径怎么看呢:因为当你给上面的jar复制到工程目录下的lib里面后,eclipse会自动将jar添加到项目里面,所以我们可以在这里查看到本项目所有的jar情况,
然后找到这个
然后找到这个就是这个类在你项目中 实际位置,给这个路径写对就好了,
第五步:然后我们就可以写action了,在src上面右键,然后新建立class,写下面的方法,我这里是测试方法,根据你们实际情况来
第六步:这步当然就是最重要的struts.xml文件了,一样,点击src,然后右键新建一个xml文件
然后配置如下,下面我是采用的通配符的方式进行访问,其他两种方式,官方不建议使用,所以这里就不在细分了,其中打了注视的两个地方需要注意下,因为2.5后的struts被严格化了,所以只能单独调用方法,不能使用通配符,所以这里 需要加上两个代码:<!–允许动态调用方法,通配符+占位符组合,必须加上这行代码–>
<constant name=”struts.enable.DynamicMethodInvocation” value=”true”/>
<constant name=”struts.devMode” value=”false”></constant>
还有就是package还得加一个属性:strict-method-invocation=”false” 默认是true,意思就是不使用多方式调用,所以这里改为false就行了,
一系列参数说明
这里package标记中name属性用作定义一个包名以区分其他人代码,extends属性用于继承一个父包,namespace在struts2.5以后,必须加上,命名空间为当前项目
action标记中的name属性是用作客户端访问时的通配符前面的单词
action标记中的class属性则是用作与这个action所对应的aciton类的全路径
action标记中的method属性时与action类的方法所对应的名称,不写默认为execute方法
action标记内result中的name属性是method所在action的方法的返回值(根据返回值来做对应的处理),不写默认为success
若返回值与name属性值匹配则完成result标记内指定的路径进行跳转(本例就跳转到我们事先编写好的一个index.jsp页面)
<?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.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.devMode" value="false"></constant>
<!--strict-method-invocation是(严格方法访问),默认为true,不能使用动态方法调用功能,如果需要访问多个方法,则改为false-->
<package name="pk" extends="struts-default" namespace="/" strict-method-invocation="false">
<action name="customer_*" class="com.ssh.CustomerAction" method="{1}">
<result name="first">/first.jsp</result>
<result name="one">/one.jsp</result>
<result name="two">/two.jsp</result>
<result name="three" type="redirectAction">other!otherAction</result>
</action>
<action name="other" class="com.ssh.CustomerAction">
<result name="otherAction">/otherAction.jsp</result>
</action>
</package>
</struts>
第七步:当然就是部署项目了,我这里以Tomcat为准:点击eclipse上面的window,然后选择下面的preferences
然后打开这个界面,旧版本是可以在上面直接搜Tomcat就出来了,新版本不行,所以就得找到配置地方,选下面的server,然后选择runtime environment,运行时环境,然后在点击右边的add进行添加服务器Tomcat
点击add后,出现选择对应的服务器版本,只管选择就行了,选择好了后,点击next
点击next后,会出现Tomcat的路径,name可以随便取名,第二个直接选择你的Tomcat目录就行了,然后点击finsh
完成后,在项目的左边就会出现你当前项目 服务器配置,这也是最新的eclipse才有的,之前没有的,下面的每个文件都可以更该,比如服务器的端口,已经启动后的访问首页设置等等
第八步:还是找到最上面 window,然后选择show view视图显示,然后选择server,下面就会出现server的选项卡,
然后,我们在下面server找到刚才添加的服务器,右键,add and remonve添加或者移除项目,
点击了后,会出现这个界面左边是待部署的项目,选择左边需要部署到Tomcat上 项目,然后点击中间的add按钮,就会将选择的项目添加到右边的框内,然后在点击下面的finsh按钮,即可将项目部署到Tomcat上,
点击finsh后,我们可以去看下Tomcat的项目文件所在位置:找到之前下载的Tomcat的路径,然后打开下图的webapps文件夹,即可看到添加到Tomcat的项目
这就是我部署的项目
这个路径和eclipse里面的路径是对应的,
还有就是index界面这些在没有重定向后,不能放web-inf下面,不然浏览器访问不到,因为web-inf是有多重安全机制拦截,如果没有重定向就访问的话,会报错:
第九步:就是启动项目,验证部署的结果了哦:选择服务器,然后点击右边的启动按钮即可,启动
然后在浏览器输入访问地址即可访问:
第十步,index里面我是采用的通配符,,注意横杠前面的是struts里面的action的name值,
因为我是采用的通配符,所以这里横杠前面都可以写一样的,意思就是访问同一个action
访问不同的方法,就直接写方法名就可以了,下面的横杠后面的*号代表的是前面传进来的方法名称,method是方法参数
最后讲一下Tomcat启动过程:
第一:当Tomcat启动,程序会去调用Tomcat里面的web.Xml文件,然后找到下面的首页路径
找到了后,Tomcat会执行context.xml,通过这个XML里面的查询源代码找到本服务器的所在项目位置的web.xml,这样就和项目里面的web.xml关联上了,然后就是上面的问题了,不过这里要说下,这个context.xml文件是一个以内存为单位的文件,意思就是当你该变了action后的值,改文件会自动去查询内容是否变更,如果有变更,就会重新同步到Tomcat里面,而且会将你本次的action的访问路径存入内存里面,当你下次再次访问的时候,指针将会直接从内存里面拿东西,而不是在此读取XML文件
本次eclipse部署struts到此结束,下章继续部署hibernate。
谢谢大家
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137537.html