html+java+struts实践笔记

首次HTML+java后台实践笔记

工具:eclipse
目的:使用java后台,套用struts框架,实现HTML项目的后台逻辑处理
实现效果:在html页面的js中发送ajax请求,获得java后台的返回数据

1. 新建Dynamic web project项目,生成空项目

项目结构如下:
-ddd
|--Deployment Descriptor :ddd
|--JAX-WS Web Services
|--Java Resource
|--JavaScript Resource
|--build
|--WebContent
     |--META-INF
     |--WEB-INF // 放置html页面
         |--lib // 放置引用的与网页相关的jar包
         |--web.xml // 添加struct2过滤器 与映射

2. 添加struts2过滤器

// web.xml 
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher> <!--这两行很重要不配的话无法转发到action-->
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

3. 在Java Resource目录下 添加struts.xml 用于映射方法查找

// 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="default" namespace="/" extends="struts-default">
        
        <action name="getVisitorCount" class="UserAction" method="getVisitorCount"></action>
        <action name="setVisitorCount"  class="UserAction" method="setVisitorCount"></action>

        // action-name: ajax的请求地址
        // action-class: Java Resource目录下的对应java文件,用于后台逻辑处理
        // action-method: 在action-class指向的java文件中,查找对应的方法名称

    </package>
</struts>

4.实际的java后台逻辑处理

// Java Resources/src/UserAction.java
public class UserAction extends ActionSupport {
    HttpSession session = getSession();
    HttpServletRequest request = getRequest();
    HttpServletResponse response = getResponse();
    HashMap<String, Object> data = new HashMap<String, Object>();

    
    public String getVisitorCount () throws IOException {
        
        // data是一个预定义的HashMap类型的数据
        // 通过.push方法传入键值对
        // 通过JSON.toJSONString(data)解析成常用的json数据类型
        data.push(key,value);

        try {
            response.getWriter().write(JSON.toJSONString(data));
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
    
    private HttpSession getSession() {
        HttpSession session = ServletActionContext.getRequest().getSession();
        return session;
    }

    public HttpServletRequest getRequest() {
        HttpServletRequest request = ServletActionContext.getRequest();
        return request;
    }

    public HttpServletResponse getResponse() {
        HttpServletResponse response = ServletActionContext.getResponse();
        return response;
    }

}

5.在js中发出ajax请求,调用java后台

// jQuery Ajax请求
function sendAjax(){
    $.ajax({
        type: "post",
        url: "getVisitorCount",    // url字段即为struts.xml中的action-name字段;struts将完成action转发,查找对应方法
        data: {"para":1},
        cache: false,
        async : true,
        dataType: "json",
        success: function (data)
        {
           // success operation
        },
        error:function (XMLHttpRequest, textStatus, errorThrown) {      
           // failure operation
        }
     });
}

sendAjax();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 转载至:http://www.cnblogs.com/cvst/p/5822373.html Java Excep...
    小沙鹰168阅读 1,940评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 那时候傻啊 喜欢一个人就表现的淋漓尽致 现在更傻 爱不爱都藏在心里 不是时光蹉跎 是我的过错 弄丢了一切
    叶子i7阅读 305评论 0 0
  • 样式有几种引入方式? link和 @import有什么区别 答:常用3种。 链入外部样式表。先建立外部样式表文件(...
    Nicklzy阅读 642评论 0 51