Android与JavaWeb服务器交互教程(2)-搭建简易的JavaWeb服务

来源:互联网 发布:ubuntu添加用户到sudo 编辑:程序博客网 时间:2024/05/17 04:37

1.前言

为了通用性,此处JavaWeb服务器采用Struts2框架开发,(最近发现一个JavaWeb的敏捷开发框架-Nutz,最近开发的JavaWeb项目几乎都是采用了这个框架写)。

2.搭建项目

2.1 新建一个JavaWeb项目

新建一个JavaWeb项目,名字叫WebServer(这个名字随便起)
File->New->Project

2.2 导入项目的依赖

下载struts2的库,传送门
写这篇教程的时候版本还是2.5.10.1,因此就以此为例了

在Web/WEB-INF目录下新建一个lib目录,将Struts2库文件拷贝到里面。

配置依赖

添加Tomcat运行时库

选中tomcat安装目录中的lib文件夹

以同样的方式选中项目目录中刚刚创建的lib目录。

2.3 配置Struts2项目

2.3.1.在web.xml里面配置过滤器(文件位于web/WEB-INF/web.xml),没有的话就新建一个。此处我们就拦截 action 为结尾的请求,如果要拦截所有请求,将

<url-pattern>*.action</url-pattern>

修改成

<url-pattern>/*</url-pattern>

就可以。

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"         version="3.1">    <filter>        <filter-name>action2</filter-name>        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>action2</filter-name>        <url-pattern>*.action</url-pattern>    </filter-mapping></web-app>

2.3.2 添加Action类

在src目录下新建一个包,此处我们就命名为com.imudges.web.action
创建一个BaseAction类,代码如下:

package com.imudges.web.action;import com.opensymphony.xwork2.ActionSupport;import java.util.HashMap;import java.util.Map;/** * Created by HUPENG on 2017/4/30. */public class BaseAction extends ActionSupport{    /**     * 返回成功的结果     * */    protected Map<String,Object> getSuccessResult(Object data){        Map<String,Object>result = new HashMap<>();        result.put("code",0);        result.put("msg","ok");        result.put("data",data);        return result;    }    /**     * 返回失败的结果     * */    protected Map<String,Object>getFailResult(int code,String msg){        Map<String,Object>result = new HashMap<>();        result.put("code",code);        result.put("msg",msg);        result.put("data",null);        return result;    }}

新建一个处理登录请求的Action类继承自BaseAction,此处为了简单起见,不引入数据库层,直接在Action层中进行判断用户名,当用户名为admin,密码为123的时候认为登录成功,否则认为登录失败。具体的实现如下:

package com.imudges.web.action;import java.util.Map;/** * Created by HUPENG on 2017/4/30. */public class LoginAction extends BaseAction {    /**     * 用户请求参数     * */    private String username;    private String password;    /**     * 返回结果     * */    private Map<String,Object>result;    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 Map<String, Object> getResult() {        return result;    }    public void setResult(Map<String, Object> result) {        this.result = result;    }    @Override    public String execute() throws Exception {        if ("admin".equals(username) && "123".equals(password)){            result = getSuccessResult(null);        }else {            result = getFailResult(-1,"用户名或者密码错误");        }        return SUCCESS;    }}

2.3.3 编写struts.xml

struts.xml位于src的根目录,若无,新建之。

修改之后应该类似于这样:

<?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="default" namespace="/"             extends="struts-default,json-default">        <action name="login" class="com.imudges.web.action.LoginAction">            <result name="success" type="json">                <param name="root">result</param>            </result>        </action>    </package></struts>

2.4启动服务器





2.5查看效果

登录成功

登录失败

最后,附上项目源码:
七牛云
百度云

0 0
原创粉丝点击