最近在学struts2里面遇到很多错误,今天跟大家分享一下,我的开发工具是Eclipse;

1、到网上下载Struts2的包,这里不再累赘,百度有很多;

2、新建一个项目,记得后面加上web.xml文件;

3、先部署struts2开发环境。

    (1)、在struts2.2以后,我们需要导入的包有以下几个:
    commons-fileupload-1.2.1.jar
    commons-io-1.3.2.jar
    commons-logging-1.0.4.jar
    commons-lang3-3.1.jar
    freemarker-2.3.16.jar
    javassist-3.7.ga.jar
    ornl-3.0.jar
    struts2-core-2.2.1.1.jar,
    xwork-core-2.2.1.1jar

    我通常都是把这些文件复制到WEB-INF/lib目录里。也可以在项目属性的Java Build Path中的libraries里面添加;

    (2)、在lib文件夹下面的web.xml文件添加以下内容:

    

<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.xml文件是这样的

    

<?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>Struts2Mianshi</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.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

    (3)、在src目录下新建struts.xml文件,记住配置文件位置 在src目录下,命名struts.xml  小写。配置struts.xml文件

  

<?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="main" extends="struts-default">
<!--这个里面写action配置-->
</package>
</struts>

4、在WebContent建一个文件夹存放JSP页面的(我建议还是建立一个Page文件夹  有利于文件的管理,还有后面的路径也好弄)

5、在Page文件里创建一个JSP文件命名index.jsp写登陆界面

<%@ page language="java"  contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String RootPath=request.getContextPath();
%>
<!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=UTF-8">
<title>登陆界面</title>
</head>
<body>
<form action="<%=RootPath %>/login" method="post">
登陆<br/>
账号:<input type="text" name="username" /><br />
密码:<input type="password" name="userpwd" /><br />
<input type="submit" value="提交"/>
</form>
</body>
</html>

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。

6、在src下创建一个包在创建一个loginAction.java 让这个类继承ActionSupport(action文件命名规则自己看)

看到JSp页面的账号username与密码userpws不。这边要获取就要命名跟他一样

private String UserName;并get、set 然后写execute()方法

package com.weiyang.acction;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class loginAction extends ActionSupport {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpwd() {
return userpwd;
}
public void setUserpwd(String userpwd) {
this.userpwd = userpwd;
}
private String userpwd; /**
* execute方法会在该Action类被调用的时候自动执行,
* 如果 账号="admin"并且密码="123456",就返回SUCCESS
* 否则返回ERROR
*/
public String execute()
{
if(username.equalsIgnoreCase("admin") && userpwd.equalsIgnoreCase("123456"))
{
return SUCCESS;
}
else {
return ERROR;
}
}
}

7、action写好了就去配置struts.xml

<!--action标签的name是login,这个必须跟index.jsp中的action属性一致性。class是loginAction类的全称-->
<action name="login" class="com.weiyang.acction.loginAction">
<!--这个标签的意思是当LogAction类的execute方法返回SUCCESS时,页面跳转到success.jsp-->
<result name="success">WEB-INF/success.jsp</result>
<result name="error">WEB-INF/error.jsp</result>
</action>
login,这个必须跟index.jsp中的action属性一致性。class必须写loginAction类的全称
success 跟error是jsp文件 用来验证成功与失败 把他们新建在WEB-INF目录下
<result name="success">WEB-INF/success.jsp</result>  其他目录建立的写好路径

我的文件结构

个人理解的流程,web.xml文件中加入了strtus配置文件,所以index.jsp运行后指向action里面的login,在struts.xml文件找到login通过class找到action类,进行execute方法根据返回的success或者error又指向对应的jsp文件显示给用户。

开始做的时候  出现额404错误

<!--<constant  name="struts.action.extension" value="action,do"></constant>-->  我在struts.xm文件中有这句运行index.jsp出现404

action="<%=RootPath %>/login" method="post">  没有获取项目路径也是404,就是像这样action="login" method="post">

因为我建了一个文件夹PageHH存放jsp文件 所以路径就出现问题

最多的还是上面说的细节  命名,struts.xml文件里的配置不仔细出现的404

目前遇到的问题  在struts.xml文件包含了一个login.xml文件 让他代替struts.xml配置实现登陆模块,以后可以根据各自的功能建不同的配置文件。

<include file="login.xml"></include>

这句加上去  login.xml文件配置也没发现村 运行起来就出现404  还在找问题

初学者  大神勿喷!

java里Struts2学习登录练习详解的更多相关文章

  1. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  3. 牛客网 Java 工程师能力评估 20 题 - 详解

    牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵 ...

  4. Java性能分析之线程栈详解与性能分析

    Java性能分析之线程栈详解 Java性能分析迈不过去的一个关键点是线程栈,新的性能班级也讲到了JVM这一块,所以本篇文章对线程栈进行基础知识普及以及如何对线程栈进行性能分析. 基本概念 线程堆栈也称 ...

  5. java实现微信扫一扫详解

    java实现微信扫一扫详解 一.微信JS-SDK参数配置及查找 JS安全域名配置(查找:微信公众号里-公众号设置-功能设置页) 注:1.安全域名外网必须可以访问的到  2.域名不能有下划线  3.要将 ...

  6. Flink 从 0 到 1 学习 —— Flink 配置文件详解

    前面文章我们已经知道 Flink 是什么东西了,安装好 Flink 后,我们再来看下安装路径下的配置文件吧. 安装目录下主要有 flink-conf.yaml 配置.日志的配置文件.zk 配置.Fli ...

  7. iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...

  8. 各大公司广泛使用的在线学习算法FTRL详解

    各大公司广泛使用的在线学习算法FTRL详解 现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression),而传统的批量(batch)算法无法有效地处理超大规模的数据集和在线数据 ...

  9. Java 反射 设计模式 动态代理机制详解 [ 转载 ]

    Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 ...

随机推荐

  1. MySQL 安装 5.0

    MySQL免安装版配置 1.下载 MySQL 免安装版 2.将 MySQL 解压到待安装目录,使用%MYSQL_HOME%表示 3.打开文件my-huge.ini另存为my.ini,在my.ini文件 ...

  2. Struts2框架学习(一)

    Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...

  3. OBJECT和EMBED标签

    一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标 签.也就是OBJECT和EMBED标签.OBJECT标签是用于windows平台的IE浏览器的,而EMBED ...

  4. win8系统换win7系统

    吐槽一下先,win8换win7好费事~第一次弄,不过总算弄好了,记录一下吧. 首先,最坑人的就是,win8没法像win7那样按F1或者别的,直接进入BIOS,也就没法设置U盘引导,据说是由于win8的 ...

  5. JavaScript成员属性读取

    var obj = {}; 检索一个不存在的成员属性的值,将返回undefined; 可以使用||运算符来填充默认值: var status = obj.status||'inistatus' 从un ...

  6. PowerShell:因为在此系统上禁止运行脚本

    在安装chocolatey(官网)的时候,不能运行chocolateyInstall.pal脚本文件. 查阅资料后,得出如下解决办法: 首次在计算机上启动 Windows PowerShell 时,现 ...

  7. 001.MVC基本概述

    MVC的基本概念 一.NET平台下开发web应用程序的方案(方法) 方案A:ASP.NET webForm1.web窗体:臃肿(胖)性能低 优点:有很多的web控件可以使用,能够方便的和服务端交互(数 ...

  8. 深入探讨 ECMAScript 规范第五版

    深入探讨 ECMAScript 规范第五版 随着 Web 应用开发的流行,JavaScript 越来越受到开发人员的重视.作为 ECMAScript 的变体,JavaScript 语言的很多语法特性都 ...

  9. [转载] ping和telnet的区别

    转载自:http://www.cnblogs.com/Jtianlin/p/4045021.html windown7下打开telnet功能: 控制面板 --- > 程序(小图标下直接到[程序和 ...

  10. 源码(09) -- java.util.Arrays

    java.util.Arrays 源码分析 ------------------------------------------------------------------------------ ...