`

HelloStruts2

 
阅读更多
    很久没进行web开发,感觉快要忘光了,重拾起快遗忘的记忆,从struts2基础学起。
    第一步,当然是从官网下载最新的struts2,地址http://struts.apache.org/,我习惯下载-all.zip,解压,准备开始第一个struts2。

    第二步,打开MyEclipse,我用的是MyEclipse10,新建一个Dynamic web project工程,命名为“HelloStruts2”。

    第三步,将解压后lib目录下的commons-logging-1.1.1.jar、freemarker-2.3.19.jar、ognl-3.0.5.jar、struts2-core-2.3.4.1.jar、xwork-core-2.3.4.1.jar,这个版本的struts2同时需要commons-fileupload-1.2.2.jar、commons-io-2.0.1.jar、commons-lang3-3.1.jar。这样子貌似可以了,但当运行时死活不行,网上查了后说仍需要一个不存在struts.zip里面的javassist-3.7.ga.jar.......这样在MyEclipse直接run on server运行通过,但部署到tomcat,通过tomcat运行的时候报了class cast异常,最终发现在tomcat的context.xml文件里面加入<Loader delegate="true" />元素后总算可以正常运行了。

    第四步,修改web.xml文件
<?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">
	<display-name>HelloStruts2</display-name>

	<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>
</web-app>


    第五步,在HelloStruts2的WebContent文件夹下新建一个login.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>登录页面</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <form action="login.action" method="post">
    	username:<input type="text" name="username"><br/>
    	password:<input type="password" name="password"><br/>
    	<input type="submit" value="submit">
    </form>
  </body>
</html>


    第六步,新建一个action,不用像struts1一样强制继承action,更容易维护和写单元测试,也不会与servletAPI联系过紧。
package cn.com.hellostruts2.action;

public class LoginAction {
	private String username;

	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() throws Exception {
		return "success";
	}
}


    第七步,在src目录下新建一个struts.xml文件,MyEclipse可以替我们生成xml with struts,但我更偏向从struts2.zip解压包中的app文件夹中的war中解压提取一个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="struts2" extends="struts-default">
		<action name="login" class="cn.com.hellostruts2.action.LoginAction">
			 <result name="success">/result.jsp</result>  
		</action>
	</package>
</struts>


    第八步,在WebContent文件夹下新建一个result.jsp文件。
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>登录成功页面</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	username:${requestScope.username } <br/>
  	password:${requestScope.password } 
  </body>
</html>


    以上是代码的编写工作,测试的话可以直接通过MyEclispe集成tomcat,并用run on server来运行,或者右键点击HelloStruts2这个项目的名称,在菜单中选择myeclipse,再选择add and remove project,配置发布的地址就可以了。
   最后,运行tomcat,打开浏览器,在浏览器中输入 http://localhost:8080/struts2/login.jsp 就可以了。

   重拾struts2,发现很多东西都忘了,但还是觉得入门其实不难,用了框架,简化了很多的操作,以后继续认真学习web开发。
分享到:
评论

相关推荐

    入门级j2ee开源项目 hellostruts2

    【标题】"入门级j2EE开源项目 HelloStruts2" 涉及的主要知识点是Java企业级开发,特别是使用Struts2框架进行Web应用程序构建的基础知识。Struts2是Java社区广泛使用的MVC(Model-View-Controller)框架,它简化了...

    Strtus2学习笔记

    3. **创建HelloStruts2_1.jsp页面** - 修改jsp文件的默认编码属性:Window &gt; Preferences &gt; Web &gt; JSP Files &gt; 设置为Chinese, National Standard 4. **配置web.xml** - 建立Struts2的Filter配置 5. **运行项目** ...

    Struts2+Hibernate3图文教程入门.doc

    首先,你需要有一个基础的Struts2项目,例如"HelloStruts2"工程。你可以按照Struts2入门文档的步骤创建或修改现有的工程名。然后,你需要调整Web应用的根目录名,这可以在工程属性的"MyEclipse" -&gt; "Web"设置中完成...

    HelloStruts2.5.10.1

    在本案例中,我们关注的是"HelloStruts2.5.10.1"项目,它基于Struts2的最新稳定版本2.5.10.1,这是一个注解驱动的开发实例,特别适合初学者学习和理解。 1. **Struts2核心概念**: - **Action类**:是业务逻辑处理...

    马剑威Struts2框架视频教程(27集)

    【】兄弟连_马剑威_002_HelloStruts2入门 【】兄弟连_马剑威_003_Struts2_Action(1) 【】兄弟连_马剑威_003_Struts2_Actio 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Struts2例子(1)

    Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web...在HelloStruts这个项目中,你将会看到这些概念是如何结合在一起工作的,从而进一步加深对Struts2的理解。

    struts2简介

    例如,HelloStruts程序,它展示了如何创建一个简单的Struts2应用程序,接收用户输入并返回响应。 在早期的Web开发模式Model I中,业务逻辑和页面显示是混合在一起的。这导致了诸多弊端,例如难以维护和扩展,以及...

    Struts2的配置

    - 输入项目名称(例如:“hellostruts”),并点击Next。 - 在“Project Facets”页面中,确保选择了正确的Java EE版本。 - 重点:在“Deployment Assembly”页面,需要将“Build Classes”路径设置为...

    Struts1入门实例(完整代码)

    2. **MVC模式** MVC模式是软件设计中的一个经典模式,用于分离应用程序的数据模型、用户界面和控制逻辑。在Struts1中,Model代表业务逻辑,View负责展示,Controller处理用户请求并协调Model和View。 3. **项目...

    Struts1.2 入门示例

    在压缩包中的`helloStruts`目录,应该包含了整个项目的源代码结构,包括Action类、配置文件、JSP页面以及相关的依赖库。通过查看这些文件,你可以逐步理解并实践Struts1.2的开发流程。对于初学者来说,逐步解构并...

Global site tag (gtag.js) - Google Analytics