开发工具:eclipse

搭建环境:jdk1.7   tomcat 8.0

基础的java开发环境搭建过程不再赘述,下面从打开eclipse 之后的操作开始

第一步: 创建项目,File -> New -> dynamic web project

tomcat 版本一般会自动获取,只要填上项目名称,点击下一步

到这个页面之后,把Content directory 改成WebRoot,自动生成xml的选项点选为√ ,点击完成。

项目目录如下图所示:

其中,lib文件夹放的是项目所需的jar包,将jar包复制进去后,点击右键 Bulid Path -> Add To Bulid Path,导入成功。

我导入的是structs2.3.37版本,需关联导入共9个jar包,如下:

在WebRoot下新建jsp页面 index.jsp,然后将项目add到tomcat服务器上,点击运行。现在在浏览器中已经可以访问啦

第二步,修改配置文件

1. 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>HelloWorld</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>
    
    <!-- 配置文件 多个文件用,分开 -->
    <init-param>    
        <param-name>config</param-name>    
        <param-value>struts.xml</param-value>    
    </init-param>
    
    <!-- 拦截器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <!-- 配置Struts2框架默认载入的Action包结构 -->
          <init-param>
              <param-name>actionPackages</param-name>
              <param-value>com.koala.actions</param-value>
          </init-param>
    </filter>
    
    <!-- 配置Filter拦截的URL -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
</web-app>

  过滤器:Filter过滤器是java常用技术,也是Struts2能跑起来的基本前提。其工作原理为:当项目启动时,首先会加载web.xml中的配置,所以会首先加载配置的StrutsPrepareAndExecuteFilter过滤器。过滤器是作为用户请求和Web服务器之间的处理程序,可以对用户请求和处理程序相应的内容进行处理。通过过滤器原理,可以达到让开发人员先一步对用户请求进行处理,在Servlet被调用前,检查Request对象,修改Request Header和Request内容。
  过滤器过滤的URL资源可以是Servlet、JSP、HTML文件,或是整个路径下的任何资源。多个过滤器可以构成一个过滤器链,当请求过滤器关联的URL时,过滤器链上的过滤器会挨个发生作用。过滤器往往用在进行权限控制、字符集处理等场合。

  * 注:拦截器名称org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,2.1.3以前版本时为org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,请注意区分。

  监听器:监听某个对象的的状态变化的组件。监听器的相关概念事件源:

  • 被监听的对象(三个域对象 request,session,servletContext)
  • 监听器:监听事件源对象, 事件源对象的状态的变化都会触发监听器 。
  • 注册监听器:将监听器与事件源进行绑定。
  • 响应行为:监听器监听到事件源的状态变化时,所涉及的功能代码(程序员编写代码)

  按照被监听的对象划分:ServletRequest域 ;HttpSession域 ;ServletContext域。按照监听的内容分:监听域对象的创建与销毁的; 监听域对象的属性变化的。

2. struts.xml

  struts.xml 新建在src目录下,以下为该文件的基本配置

<?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> </struts>

在配置过struts的package属性后,文件配置被我修改为

<?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>
<!-- 设置编码格式为utf-8 -->
<constant name="struts.i18n.encoding" value="utf-8"/> <!-- 修改struts.xml后,无需重启Tomcat -->
<constant name="struts.configuration.xml.reload" value="true"/> <!-- package属性介绍
1.name ->包的名称,可自定义,可以配置多个包
2.namespace ->命名空间,不同模块可以指定不同的空间,必须以"/"开头,为防止action的name重复
3.extends -> 继承,值是直接或间接的继承struts-default,它也是一个xml文件
-->
<package name="login" namespace="/user" extends="struts-default">
<!-- action 属性介绍
1.name ->url请求名,不需要加后缀(.action)
2.class ->处理url对应的java类,class要求报名加类名
3.method ->配置处理请求的方法,默认为execute;方法必须是public String修饰的
-->
<action name="login" class="com.koala.action.LoginAction" method="login">
<!-- result属性介绍
1.name:->匹配请求方法的返回值,默认是success
2.type:->结果处理类型,默认是dispatcher转发
chain: 链接到下一个action,执行完actionA后执行actionB<result type="chain">exit</result>
redirect: 重定向到jsp页面
redirectAction: 重定向到下一个action
-->
<result name="success">/success.jsp</result>
<result name="error">/login.jsp</result>
<result name="redire" type="chain">userCount</result>
</action>
<action name="userCount" class="com.koala.action.LoginAction" method="userCount">
<result name="success">/WEB-INF/success.jsp</result>
</action>
</package> <!-- 默认包 没有命名空间时,会进入该包查找action -->
<package name="default" namespace="/" extends="struts-default">
<action name="index">
  <result>/index.jsp</result>
</action>
  </package>
</struts>

此时项目下的文件目录如下:

LoginAction.java的内容如下:

package com.koala.action;

public class LoginAction {

	public String login(){
System.out.println("login");
return "redire";
} public String userCount(){
System.out.println("userCount");
return "success";
}
}

此时项目可以成功运行,浏览器输入http://localhost:8080/HelloWorld/user/login, 或者http://localhost:8080/HelloWorld/index,都可以进行访问啦

此时此刻的心情

啊哈哈   巴适得很

Java Web项目搭建过程记录(struts2)的更多相关文章

  1. Intellij IDEA Java web 项目搭建

    Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个 ...

  2. Java web 项目搭建

    Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个 ...

  3. 在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  4. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...

  5. 一个简单的Java Web项目搭建流程

    今天试图在服务器上搭建一个web服务器,顺便回顾了java web项目的入门,使用Servlet处理HTTP请求,并记录日志等操作.当很久没有做过web项目时,有些东西还是很容易忘记的. Maven配 ...

  6. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

  7. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/index.html下载Java SE 6 Update 27根据操作系 ...

  8. Java web项目搭建系列之一 Eclipse中新建Maven项目

    前提条件: 已经安装好JDK 已经安装好Maven 已经安装好Eclipse 已经安装好Maven插件 在Eclipse中新建Maven项目 [File]→[New]→[Other...] [Mave ...

  9. Java web项目搭建系列之二 Jetty下运行项目

    在项目pom.xml文件中添加Jetty运行配置 在pom.xml文件project节点下插入如下代码: <build> <plugins> <plugin> &l ...

随机推荐

  1. Pandas | 19 合并/连接

    Pandas具有功能全面的高性能内存中连接操作,与SQL等关系数据库非常相似.Pandas提供了一个单独的merge()函数,作为DataFrame对象之间所有标准数据库连接操作的入口 - pd.me ...

  2. Linux-day02

    一.安装搜狗输入法 1.更新包安装 setting→language support 2.安装中文语言包,安装Fcitx输入法框架 3.安装搜狗输入法命令: sudo dpkg -i sogoupin ...

  3. contest2 CF989 div2 ooox? ooox? oooo?

    题意 div2C (o) 在\(小于50*50\)的棋盘上放\(A, B, C, D\)四种花, 并给出每种花的连通块数量\(a, b, c, d(\le 100)\), 输出一种摆法 div2D ( ...

  4. 如何确定假设检验的样本量(sample size)?

    在<如何计算假设检验的功效(power)和效应量(effect size)?>一文中,我们讲述了如何根据显著性水平α,效应量和样本容量n,计算功效,以及如何根据显著性水平α,功效和样本容量 ...

  5. DAVID 进行 GO/KEGG 功能富集分析

    何为功能富集分析? 功能富集分析是将基因或者蛋白列表分成多个部分,即将一堆基因进行分类,而这里的分类标准往往是按照基因的功能来限定的.换句话说,就是把一个基因列表中,具有相似功能的基因放到一起,并和生 ...

  6. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  7. Shell脚本之九 输入输出重定向和文件包含

    输出重定向:是指不使用系统提供的标准输入端口来输出,而是重新指定其他来进行输出.例如在终端输入的字符串本来是要输出到终端屏幕上的,但可以将输出指定为其他文件,将输入字符串输出到该文件中,而不再是屏幕上 ...

  8. magic模块 :Exception Value:failed to find libmagic. Check your installation

    原因 缺少安装依赖: magic 安装依赖: https://github.com/ahupp/python-magic#dependencies windows下解决方法: https://gith ...

  9. Python【每日一问】18

    问: [基础题]:请解释新式类跟经典类,并说明它们的区别[提高题]:请解释Python垃圾回收机制 答: [基础题]:请解释新式类跟经典类,并说明它们的区别 1.新式类都是继承内置 object 对象 ...

  10. Arcmap图层浏览遇到ORA-07445 [QCDLAUCN] 错误

    Oracle 12.1.0.2版本,在图层浏览时遇到了ORA-07445 [QCDLAUCN] 错误.根据MOS的查询结果,得知这是一个bug (Doc ID 1932725.1): 文章中同时给出了 ...