对Web应用程序而言,需要跨越HTTP协议的两个障碍——无状态和基于文本。

  在没有使用struts的时候,你会有一个很真切的体会,就是如何把html页面上的数据提交给后台处理,以什么格式提交?

这是个值得思索的问题。当然要是用Servlet就可以解决。但是在Servlet中要处理request中的各种参数。这些参数是String格式

要将这些String格式的数据转换成java中的类型。这是个枯燥且庞大的工程。

    /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String userString=request.getParameter("username");
String password=request.getParameter("password");
PrintWriter out = response.getWriter();
out.println(userString);
}

而使用了struts控件,就可以自动的获取前台html中的数据。并且可以自动的存储到javabean中。想想这是多么令人愉快的事情啊!

  就Struts的配置来说还是非常简单的。首先在WebContent/WEB-INF/lib中导入必须的包

如图:

其次在web.xml中配置FilterDispatcher

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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"> <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>login.jsp</welcome-file>
</welcome-file-list>
</web-app>

然后配置struts.xml文件(struts.xml必须小写,而且必须放到src目录下)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="LoginAction" class="action.LoginAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>

之后就是写action了。

package action;

public class LoginAction {
private String username; // 表单的请求参数被放入到动作(action)中名字匹配的属性上。(只要名字匹配,框架自动完成)
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
// 业务逻辑处理
return "success"; //返回控制字符串,已选择应该被呈现的结果页面。从struts.xml可以看出返回到success.html页面。
} }

最新文章

  1. C语言修炼-第2天
  2. ThinkPHP实现联动菜单;
  3. vim粘贴代码格式变乱
  4. Mac窗口管理管理软件SizeUp
  5. hadoop错误Could not obtain block blk_XXX_YYY from any node:java.io.IOException:No live nodes contain current block
  6. Linux基本配置和管理 1---- Linux网络基本配置
  7. SpringMVC实现注解式权限验证
  8. 【蒙地卡罗法求PI】
  9. Nodejs核心模块
  10. [机器学习实践] 针对Breast-Cancer数据集
  11. Android混淆
  12. Python模块:paramiko
  13. 用 async/await 来处理异步
  14. c# 使用Renci.SshNet.dll操作SFTP总结
  15. 谈谈npm依赖管理
  16. angularJs, ui-grid 设置默认group, 及排序
  17. 将Highcharts图表数据生成Table表格
  18. 扩展kmp 模板
  19. 大数据时代,银行BI应用的方案探讨
  20. C++中class与struct的区别(struct的类型名同时可以作为变量名)

热门文章

  1. js base64位和c# Base64位转换
  2. 又爱又恨系列之枚举enum
  3. python 学习笔记7(类/对象的属性;特性,__getattr__)
  4. [bzoj1854][SCOI2010]游戏
  5. Leetcode #2 Add two number
  6. 【BZOJ-1863】trouble 皇帝的烦恼 二分 + DP
  7. BZOJ3240 [Noi2013]矩阵游戏
  8. Jenkins 2.x版本的安装步骤(Windows)
  9. Android成长日记-Fragment的生命周期与Activity通信
  10. OpenCV: imshow后不加waitkey无法显示视频