Struts2基础学习总结

Struts2基础学习总结(一)---入门

Struts 2:

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

Struts2开发环境

1. 拷贝必要jar包

jar包百度云盘地址:http://pan.baidu.com/s/1skSXbCp

2.在src下建立struts.xml的配置文件

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

3.在web.xml中配置(增加一个过滤器)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.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>

环境配置就完成了接下来测试第一个案列

第一个Struts2案例

1、建立一个login.jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>login</title>
</head>

<body id="login">

    <form  action ="login" method="post">
      <p>
        <label>Username</label>
        <input class="text-input" type="text" name="username" />
      </p>
      <div class="clear"></div>
      <p>
        <label>Password</label>
        <input class="text-input" type="password" name="password" />
      </p>

      <div class="clear"></div>

      <p id="remember-password">
        <input type="checkbox" name="loginRemember" value="1" />
        Remember me </p>
      <div class="clear"></div>
      <p>

       <input class="button" type="submit" value="Sign In" />
      </p>
    </form>

</body>
</html>

登入页面

新建一个成功页面mysuc.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>My JSP ‘mysuc.jsp‘ starting page</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>
    登入成功 <br>
  </body>
</html>

2、controller层代码

package com.hdj.controller;

public class userLogin {
    private String username;
    private String password;

    public String userLogin(){
        return "MySuc";
    }

    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;
    }
}

3、新增struts.xml文件中配置

<struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <action name="index">
             <result >/index.jsp</result>
        </action>

        <action name="login" class="com.hdj.controller.userLogin" method="userLogin" >
         <result  name="MySuc" >/mysuc.jsp </result>
        </action>

    </package>
</struts>

Tomcat发布并访问。(http://localhost:8080/day5-14struts2exercise/login.jsp)

点登入跳转mysuc.jsp页面

第一个案列到此结束。

时间: 2024-10-06 10:55:38

Struts2基础学习总结的相关文章

Struts2基础学习总结(二)

Struts2基础学习总结(二)---struts.xml参数 1.常量 使用<constant name="" value=""></constant>元素进行描述 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Strut

Struts2基础学习(六)&mdash;文件的上传和下载

一.文件的上传 1.单个文件上传      Struts2使用拦截器完成了文件的上传,而且底层使用的也是FileUpload开源组件. 客户端注意事项: (1)method="post" (2)enctype="multipart/form-data" (3)<intput type="file" name="photo">   在Action编写文件上传时,需要定义三个属性. (1)文件类型File,属性名与表单

Struts2基础学习(三)&mdash;Result和模型驱动

一.result      Action处理完用户请求后,将返回一个普通的字符串,整个普通字符串就是一个逻辑视图名,Struts2根据逻辑视图名,决定响应哪个结果,处理结果使用<result>元素配置.      局部结果: 将<result>作为<action>子元素配置.      全局结果: 将<result>作为<global-results>元素的子元素配置.      配置<result>元素要指定两个属性.      n

Struts2基础学习(二)&mdash;Action

一.ActionSupport      为了让用户开发的Action类更加规范,Struts2提供了一个Action接口,这个接口定义了Struts2的Action处理类应该实现的规范.下面是标准Action接口的代码: public interface Action { public static final String SUCCESS = "success"; public static final String NONE = "none"; public

Struts2基础学习(八)&mdash;Struts2防止表单重复提交

一.原因      用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太 慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提交表单会对你的系统带来逻 辑影响,必须采取一些措施防止这类情况的发生.     用户重复提交同一个HTML表单的原因有:  一.快速多次点击了提交按钮:二.提交表单后按下浏览器的刷新按钮. 二.原理      Struts2已经内置了能够防止用户重复提交同一个HTML表单的功能

Struts2基础学习(四)&mdash;类型转换器

一.自定义转换器 1.概述      Struts2提供了常规类型转换器,可以用于常用数据类型的转换,但如果目标类型是一个特殊类型,则需要自定义转换器.Struts2 类型转换器实际上都是基于OGNL实现的,在OGNL项目中,有一个TypeConverter接口,自定义类型转换器必须实现 ongl.TypeConverter.        2.编写类型转换器 (1)实现TypeConverter接口,实现一个方法 public Object convertValue(Map<String, O

Struts2基础学习(五)&mdash;拦截器

一.概述 1.初识拦截器      Interceptor 拦截器类似前面学过的过滤器,是可以在action执行前后执行的代码,是我们做Web开发经常用到的技术.比如:权限控制.日志等.我们也可以将多个Interceptor 连在一起组成Interceptor 栈.     Struts2拦截器,每个拦截器类只有一个对象实例,即采用单例模式,所有引用这个拦截器的Action都共享这一拦截器类的实例,因此在拦截器中如果使用类变量,要注意同步的问题.      注意:              (1

JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

一.Map简述 1.1.简述 public interface Map<K,V> 类型参数: K - 此映射所维护的键的类型 key V - 映射值的类型 value 该集合提供键--值的映射.key不能重复,一对对的存储方式 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 1.2.方法 嵌套类摘要 static interface Map.Entry<K,V> 映射项(键-值对). 方法摘要 void clear() 从此映射中移除所有映射关系(可选操

蓝鸥零基础学习HTML5—html+css基础

蓝鸥零基础学习HTML5-html+css基础 一.课程目标 1.了解前端开发职位:2.掌握常用标签以及语义及用法:3.掌握常用css的特性,掌握基础布局技巧:4.掌握整站规划概念. 二.适用人群 零基础积极学习html5者 三.课程简介 本课程主要讲解了 html+css的基础知识,包括html模板.标签.css基础样式.布局.表格表单.整站等等,是进行前端开发的基础.Html+css是前端开发的基础,大部分前端开发工程都需要从html+css布局开始,html+css的基础非常重要,是前端开