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容器 传递给一个标 ...
随机推荐
- python学习 登陆验证
#!/usr/bin/env python #-*- coding=utf-8 -*- #----------------导入模块------------------------------ impo ...
- MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结 本文原文连接: http://blog.csdn. ...
- fork与vfork的区别与联系
fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fo ...
- Linux 压缩系列常用命令
tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...
- candence 笔记总结
1.解决candece 启动后提示找不到licence文件的错误: candece的安装就不说了,按照破解步骤一步一步来就行了,但是装完后发现每次启动都会报错 "OrCAD Capture ...
- java 中的一个项目如何做到访问另一个项目的一个方法 或者 页面
两种方法:1.将一个项目打成jar包,第二个项目进行导入该jar包,就可以使用第一个项目里的类方法属性等2.将第一个项目发布出去,然后第二个项目调用,所谓发布出去就是开发远程接口,允许其他人调用.
- [LeetCode] Pow(x, n)
Implement pow(x, n). 有史以来做过最简单的一题,大概用5分钟ac,我采用fast exponential,这个在sicp的第一章就有描述.思想是:如果n是偶数的话,那么m^n = ...
- POJ2762 Going from u to v or from v to u(单连通 缩点)
判断图是否单连通,先用强连通分图处理,再拓扑排序,需注意: 符合要求的不一定是链拓扑排序列结果唯一,即在队列中的元素始终只有一个 #include<cstdio> #include< ...
- Win7下的内置FTP组件的设置详解
在局域网中共享文件,FTP是比较方便的方案之一.Win7内部集成了FTP,只是设置起来颇费一番功夫.着文以记之. 一.安装FTP组件 由于Win7默认没有安装FTP组件.故FTP的设置第一步就是安装F ...
- MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
转自:http://blog.csdn.net/u010603691/article/details/50379282 新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过 ...