使用Struts2框架搭建Android服务器,模拟用户登录
2017-08-08 23:16
363 查看
——热爱开源,乐于分享
使用Struts2框架搭建Android服务器,模拟用户登录
一、Struts2框架的配置
步骤:1.到Struts官网下载框架开发包,并将所必需的jar包导入Myeclipse中:
2.配置struts.xml,如果没有就新建一个,注意其位置,完整代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "struts-2.1.dtd" > <struts> <!-- 声明包--> <package name="myPackage" extends="struts-default"> <!-- 定义action--> <action name="first"> <!-- 定义处理成功后的映射页面--> <result>/first.jsp</result> </action> <action name="second"> <result>/second.jsp</result> </action> <action name="login" class="com.imooc.action.UserAction" method="login"></action> </package> </struts>
3.配置web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- struts2过滤器,用于拦截规律http请求 --> <filter> <!-- 过滤器名称--> <filter-name>struts2</filter-name> <!-- 过滤器类,固定的,必须使用这个类--> <!-- 解决用什么拦截过滤的问题!!!!!!!!!!!!!!!!!!!!!!!--> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- struts2过滤器映射 --> <filter-mapping> <!-- 过滤器名称--> <filter-name>struts2</filter-name> <!-- 过滤器映射--> <!-- 解决拦截过滤什么东西的问题!!!!!!!!!!!!!!!!!!!!!!!--> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
到这里,Struts2框架的配置就完成了!!!很简单,都是最基本额配置,注释也写得很清楚了。
二、服务器类的编写
思路:使用Struts2框架最主要的是编写Action类,这里直接编写一个判断客户端发来网络请求并携带的参数,根据Struts2框架action参数注入的方法,获取用户名和密码,然后判断,最后向客户端输出string字符串,类名为:UserActionpackage com.imooc.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String username; private String password; public String login() throws IOException{ System.out.println(username+","+password); HttpServletResponse response=ServletActionContext.getResponse(); PrintWriter write=response.getWriter(); if(username.equals("cuiyang")&&password.equals("123456")){ write.write("login success!");//向客户端写入数据 write.flush(); }else{ write.write("your username or pass is error!"); write.flush(); } return null; } 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; } }
在浏览器中输入地址并传递参数到服务器:http://localhost:8080/1/login?username=cuiyang&password=123456,可以看到返回的”login success!”字符串,并在服务器控制台看到传递过去的参数:
到此,使用Struts2框架用来验证用户登录的服务器搭建完成!
三、Android客户端
还是使用OkHttp网络请求框架,主要就是较上一篇博客(http://blog.csdn.net/weixin_37921492/article/details/76902740)里面的代码更改一下URL地址就行了,改成http://localhost:8080/1/login?username=cuiyang&password=123456就行了。package com.example.administrator.okhttp_test; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ScrollView; import android.widget.TextView; import com.squareup.okhttp.Call; import com.squareup.okhttp.Callback; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import java.io.IOException; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button get_btn; private TextView tv; private ScrollView sv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); get_btn= (Button) findViewById(R.id.get_btn); tv= (TextView) findViewById(R.id.tv); sv= (ScrollView) findViewById(R.id.sv); get_btn.setOnClickListener(this); } @Override public void onClick(View view) { //1.得到okHttpClient对象,这是一个全局变量,大部分操作都在这里面 OkHttpClient okHttpClient=new OkHttpClient(); //2.封装request请求,GET请求 Request.Builder builder=new Request.Builder(); Request request=builder.get().url("http://192.168.0.104:8080/1/login?username=cuiyang&password=123456").build(); //3.将request加入Call这个,执行request请求 Call call= okHttpClient.newCall(request); //4.将请求加入请求队列,即为异步,既然Call,就回调一个Callback call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { final String str=response.body().string(); //因为这个还是在子线程,所以要开启UI线程中,进行UI更新 runOnUiThread(new Runnable() { @Override public void run() { tv.setText(str); } }); } }); } }
效果
相关文章推荐
- Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置
- android学习笔记之使用Eclipse搭建web服务器实现Android客户端登录
- Android中使用webservice验证用户登录的示例
- 在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容
- Android 使用.net开发的webservice做用户登录验证
- 使用Jquery搭建最佳用户体验的登录页面 之 记住密码自动登录功能
- 使用tomcat 来搭建本地服务器 ,使用Android 客户端(真机)通过浏览器访问
- redhat 搭建只允许系统用户登录的FTP 服务器
- Android 通过httpclient请求web服务器,并解决用户登录session保持
- 搭建android版本更新服务器使用android系统自带的DownloadManager下载文件
- Redhat Enterprise Linux中使用vsftpd搭建指定用户指定目录的ftp服务器的方法
- 如何在服务器上添加使用密钥登录的用户
- 解决:Windows Server 2003 域中设置user用户后,该用户登录后无法使用服务器的共享文件夹
- 使用nginx在android手机上搭建rtmp服务器并测试
- Android使用KSWEB搭建HTTP/WEB服务器环境
- 使用Jquery搭建最佳用户体验的登录页面。(优化点点网登录页面)
- Android中使用webservice验证用户登录的示例
- Android使用KSWEB搭建HTTP/WEB服务器环境
- Android中使用webservice验证用户登录的示例
- 用户登录的模拟 goto语句的使用