作为一名学生,也是到了求职的季节,纵观互联网企业,对三大框架都要求掌握,因此到处搜集资料,看书,看视频,想着也记录一下作为笔记,关于此框架有很多类似博客,毕竟都是差不多,仅从我个人角度作为记录,如有错误敬请指出,免得误导别人,不足之处见谅。。。
这里推荐使用eclipse安装时选择javaee,服务器是tomcat8,MySQL数据库,相关配置请自行搜索。
关于相关软件环境,我默认是已经配置好了。
Struts2
如果之前懂得Servlet原理肯定会更容易理解,但我就不讲这个了,直奔主题,
- Struts2工作原理
- Struts2环境配置
1、首先从官网下载软件包,解压缩之后如图所示
一般来说针对项目要求可以添加相应jar包,但有一些是必须的,在lib文件夹下,如图所示
2、然后打开eclipse,file->new->Dynamic Web Project
把刚才的jar包复制到Webcontent->WEB-INF->lib中
再把JDK配置好,tomcat库文件配置好,此时 Java Resources->Libraries中应该至少有三项,Apache Tomcat库,JDK,Web Libraries.
至此环境搭建完成。 - Struts2配置文件
【1】web.xml
应位于Webcontent->WEB-INF
这个文件是Java web的配置文件,不属于Struts2特有,而配置此文件是为了拦截所有请求,交给Struts2处理,具体配置如下
<?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>test</display-name>
<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>
<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>
【2】struts.xml
应位于src目录下,此配置文件是具体action配置,对于一个小的登录程序配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="test" namespace="/test" extends="struts-default">
<action name="login" class="com.struts.actions.LoginAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
值得注意的是struts-2.5.dtd,此文件是对Struts2语法的定义,故必须要声明,这是通过URI声明,本地也有此文件,可以从本地声明,2.5是我使用的版本;
package定义包,继承自struts-default,namespace命名空间,而LoginAction则是一个action类,后面再说。至此配置文件结束。
以下以一个简单登录程序解释项目流程:
- 新建项目
- 添加框架支持
- 配置web.xml
前三步就按上面配置来做,环境搭建完,编写具体代码。 - 新建jsp页面,action类
以下是登录页面和欢迎页面
index.jsp
<%@ page language="java" import = "java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登录</title>
</head>
<body>
<form action="login.action" method="post">
用户名:<input type="text" name="name"/><br>
密码::<input type="text" name="pass"/><br>
<input type="submit" value="提交">
</form>
</body>
</html>
welcome.jsp
<%@ page language="java" import = "java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登录</title>
</head>
<body>
welcome 【 ${name }】
</body>
</html>
然后是重点LoginAction类
package com.struts.actions;
public class LoginAction {
private String name;
private int pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPass() {
return pass;
}
public void setPass(int pass) {
this.pass = pass;
}
public String execute(){
System.out.println(name);
System.out.println(pass);
return "success";
}
}
这里是用了POJO类,当然一般是继承ActionSupport类,因为此类有很多实用接口,提供了很多默认方法,简化了开发;
当响应请求时自动执行execute方法。
这里有个说法,就是包名一定要是actions,不然会404报错.
4. 配置struts.xml
代码就是上面的,再贴一次
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="test" namespace="/test" extends="struts-default">
<action name="login" class="com.struts.actions.LoginAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
此时讲一下action和result
action:name属性就是jsp中的写的action,class就是对应的action类,
result:name是与调用action的execute方法返回值比较,然后转到相应界面
5. 发布运行
项目目录如下,至此可以发布,第一个Struts2程序完成。