struts2总结二:第一个简单的struts2程序
到struts2官网上面下载struts2的jar包,然后解压。
struts2的入门程序,实现简单的用户登录,struts2里面的helllo world。利用eclipse的开发工作如下:
1.首先建立一个web项目struts_01_hello

2.在WEB-INF下的lib目录导入struts2所需的jar包,如果不知道要导入哪些jar的话,下载的struts2的工程文件(struts-2.3.15.3)的apps目录下有现成的案例,如struts2-blank.war,把该war文件拷贝到tomcat下,启动Tomcat之后该文件自动解压,之后可以在里面的lib目录下找到最基本的struts2工程所需的jar包。

所需jar如下所示:

3.编写用户登录页面login.jsp。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>用户登录</title>
</head>
<body>
<div align="center">
<h3>用户登录</h3>
<form action="user/login.action" method="post">
<table border="1">
<tr><td>用户名:</td><td><input type="text" name="useName"></td></tr>
<tr><td>密 码:</td><td><input type="password" name="usePwd"></td></tr>
<tr><center><td colspan="2"><input type="submit" value="登录">
<input type="reset" name="reset" value="取消">
</td></center></tr>
</table>
</form>
</div>
<div align="center">
<a href="user/delete.action">删除</a>
</div>
</body>
</html>
4.编写用户登录成功跳转的页面welcome.jsp,该页面没什么内容,就是一个登录成功跳转的页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>欢迎页面</title>
</head>
<body>
<h1>欢迎你,登录成功</h1>
</body>
</html>
5.编写用户登录失败跳转的页面welcome.jsp,该页面没什么内容,就是一个登录失败跳转的页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>出错页面</title>
</head>
<body>
<h1>登录失败</h1>
</body>
</html>
5.编写Action类,该类继承ActionSupport,当然该类也可以实现Action接口,也可以是一个普通的java类。
package com.pcitc.action.hello;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String useName;
private String usePwd;
public String getUseName() {
return useName;
}
public void setUseName(String useName) {
this.useName = useName;
}
public String getUsePwd() {
return usePwd;
}
public void setUsePwd(String usePwd) {
this.usePwd = usePwd;
}
public String execute() {
if (this.getUseName().equals("admin") && this.getUsePwd().equals("123")) {
System.out.println("action执行了,用户名正确" + this.getUseName() + " "
+ this.getUsePwd());
return "success";
} else
System.out.println("action执行了,用户名错误" + this.getUseName() + " "
+ this.getUsePwd());
return "error";
}
}
6.在类路径下,也就是classpath下编写struts.xml文件,该文件也可以按照步骤2的方式从struts2-blank.war去找到,然后拷贝到classpath路径下修改里面的内容即可。struts.xml文件内容如下:
<?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>
<package name="parent" namespace="/" extends="struts-default"></package>
<package name="default" namespace="/user" extends="parent">
<action name="login" class="com.pcitc.action.hello.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
7.在web.xml文件里配置struts2的入口,该入口是一个过滤器,配置完成后web.xml里面的内容如下:
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>struts_02_hello</display-name>
<welcome-file-list>
<welcome-file>login.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>*.action</url-pattern>
</filter-mapping>
</web-app>
到这里一个最基本的struts2实现用户登录就已经完成。接下来把项目部署到Tomcat下启动项目,然后在浏览器输入http://localhost:8080/struts_01_hello/就可以访问用户登录界面。

在用户名处输入admin,密码输入123跳转到登录成功页面。

在用户名处和密码处输入错误跳转到登录失败页面。

注意事项:
1. 加载JAR包的几种方法:
a.按照上面步骤的到apps下的struts2-blank.war中去找,然后拷贝到lib目录下。
b.自定义一个struts2的library
2.实现Action的三种方法
a.继承ActionSupport
b.实现Action接口
c. 普通类,有返回值类型为String的无参函数
3.如果想要修改struts.xm配置文件l为别的名字,那么在web.xml里面struts2的入口过滤器里面配置初始化参数
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
</init-param>
</filter>
4.如何解决404错误?
a.检查是否发布
b.发布名和工程名是否一致
c. 配置是否正确
c.1 是否正确配置struts过滤器
c.2 struts.xml是否配置正确
struts2总结二:第一个简单的struts2程序的更多相关文章
- 第一个简单的python程序,模拟购物车
第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...
- 程序演示:C语言第一个简单实例
在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词,C语言也在其中,我们侃侃而谈,到底C程序是什么样子?让我们先看简单的一个例子: 1 2 3 4 5 6 7 8 9 #include ...
- java基础学习02(简单的java程序)
简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 ...
- [WCF学习笔记] 我的WCF之旅(1):创建一个简单的WCF程序
近日学习WCF,找了很多资料,终于找到了Artech这个不错的系列.希望能从中有所收获. 本文用于记录在学习和实践WCF过程中遇到的各种基础问题以及解决方法,以供日后回顾翻阅.可能这些问题都很基础,可 ...
- 使用maven+eclipse搭建最简单的struts2的helloworld
使用maven+eclipse搭建最简单的struts2的helloworld 一.web分层结构简介 1.web[细]粒度分层结构: 按细粒度分层可以分为以下6种: 1).表现层:html/css/ ...
- 简单介绍Struts2
Struts2概述 Struts2虽然是Struts1的基础上发展起来的,但是实质上是以WebWork框架为核心,为传统的Struts1注入了WebWork的设计理念,统一了Struts1和WebWo ...
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(转载汇总)
使用Struts2和jQuery EasyUI实现简单CRUD系统(一)——从零开始,ajax与Servlet的交互 使用Struts2和jQuery EasyUI实现简单CRUD系统(二)——aja ...
- Java框架之Struts2(二)
一.Action 配置说明 //请求的直接转发 <package name="packageUser" namespace="" extends=&quo ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
随机推荐
- 20145213《Java程序设计》第十周学习总结
20145213<Java程序设计>第十周学习总结 教材学习总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接 ...
- linux下U盘文件只读的解决办法
. 在终端运行如下命令 tail -f /var/log/syslog . 插入有只读文件系统故障的U盘 . 观察命令行输出 输出局部如下: Jul :: cslouis-pc kernel: [15 ...
- grep如何忽略.svn目录,以及如何忽略多个目录
grep如何忽略.svn目录,以及如何忽略多个目录 这是我在网上看到的文章,不过里面还有问题,我的不支持,需要更换架包 grep -r 'function_name' * (*表示当前目录下所有文件, ...
- Spring 注释 @Autowired 和@Resource
一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J ...
- NYOJ题目77开灯问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAHXCAIAAADbX7BCAAAgAElEQVR4nO3dvVLrSMAm4L0Jci6E2B
- hdu 2057 A+B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...
- myaql常用函数
一.数学函数 abs(x) 返回x的绝对值 bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x) 返回大于x的最小整数值 exp(x) 返回值e( ...
- mysql 源码安装
yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel perl perl-CPAN libpng libpng-devel freetyp ...
- css控制文字显示长度,超过用省略号替代
.line_text { width:200px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } <span cl ...
- 算法系列:XXX
转载自http://www.cnblogs.com/skynet/p/3372855.html 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择 ...