您的位置:首页 > 编程语言 > Java开发

Struts2学习第一天

2018-02-14 23:00 316 查看
估计2月份是没法再重新学习一下所有的框架了,能学多少是多少吧,技术是硬件,沟通是软件,要合理利用才会发挥出最大的效益。
废话不多说直接上手struts2
新建一个Web Dynamic Project 名称为 Struts2_0010_introduction,勾选生成web.xml



导入struts2所需要的jar包



在src下新建一个struts.xml,因为教程源自于马老师的代码,所以struts.xml是直接导入写好的文件<struts>
<!--
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<include file="example.xml"/>

<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
-->

<constant name="struts.devMode" value="true" /> <!-- 开发模式比较容易报错, 当value="false"时为产品模式 -->
<package name="default" namespace="/" extends="struts-default">
<action name="hello_world">
<result>
/Hello.jsp
</result>
</action>
</package>要说明的是struts.devMode 是一种模式,详细见 http://blog.csdn.net/qq_36894974/article/details/79326510文中说了两种模式,我在实际开发中遇到了下面的问题,xml没法自动换行的问题,百度了一下下面这个教程非常好 http://blog.csdn.net/wanghuan203/article/details/6995386 安装一个名为wordwrap的工具,直接右键wordwrap就会进行换行。
开发中还发现xml文件没有自动提示的功能,详见博客https://www.cnblogs.com/yjq520/p/6506394.html
百度是最好的老师。
解决完上述问题后,新建一个Hello.jsp,是客户端在网页上能够看到的页面信息<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello JSP 页面</title>
</head>
<body>
这是一个 Hello. JSP 页面
</body>
</html>这里解释一下,如果用上述模式中的开发者模式的话,那么在url地址中改变路径直接修改
<action name="hello_world">
即可,不需要再重新run on server一下,比较方便。
如果Console控制台总是WARNING的话,考虑加上log4j的jar包(我加上jar包之后仍然没有解决,但这是大部分度娘提供的解决办法,读者可以进行一试)。
web.xml:<
4000
/p>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Struts2_0100_introduction</display-name>
<welcome-file-list>
<welcome-file>Hello.jsp</welcome-file>
</welcome-file-list>

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
如果想看源码的话,可以从网上下载struts2源码,然后在jar包右键prooerties中选择Java Source Attachment ,选择对应路径下面的文件包,我试过后仍旧无法查看。



最后讲解一下struts2的运行过程,先贴一张UML图



程序入手一定是先从url进行入手,客户端输入url地址后,url地址会通过http协议请求tomcat,由tomcat解析地址,找到对应的web project, 找到项目后,先读取web.xml文件中的内容,通过StrutsPrepareAndExecuteFilter调用其内部的方法doFilter()方法找到struts.xml,找到对应的nameSpace()命名空间,继而找到action,通过action 找到result,把result找到的jsp页面解析后返回给客户端。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: