这几天不太忙,就自己写了一个登录的接口,是为了让Android客户端通过volley框架调用来实现登录的,自己也是初学java。写了这篇博客来记录自己的学习以便以后可以用到
第一步
1.eclipse配置好tomcat的前提下,首先创建自己的一个工程并且创建一个类去继承servlet。如下;
2.创建一个Dynamic Web Project项目
这里的Dynamic web module version的版本选2.4的
点击完成后创建了自己的HelloSeverlet然后在项目的Java Resources的rsc目录下创建severlet项目,如下图:
创建的工程项目如下
具体代码如下,这里我的代码很简单就是一个用户名(username)和密码(password)。
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
PrintWriter out=response.getWriter();
if ("admin".equals(username)&&"123".equals(password)) {
out.println("succse");
}else{
out.println("buzhidao");
}
}
}
这样就把一个简单的登录的代码写完了,接下来就是用浏览器去访问以上写好的登录,
第二步
1.在刚才创建好的目录下创建两个jsp文件如下
具体的代码fzp.jsp代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
这是我自己的页面
<a href="login.jsp">登录a>
body>
html>
login.jsp代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<form action="http://localhost:8080/HelloSverlet/LoginServlet" method="get">
用户名:<input type="text" name="username"/><br>
密码: <input type="password" name="password"/><br>
<input type="submit" value="登录"/>
form>
body>
html>
写好这些以后我启动自己在eclipse上的tomcat然后运行项目图如下
点击登录的运行如下:
ok这就完成了一个小之又小的登录
3.好了现在开始用Android 调用此接口(使用volley框架)我用的是AS工具
(1)首先创建好自己的工程后要导入volley.jar包把下载的volley.jar包复制到lib文件夹中
好了这就成功把框架导入了,接下来就是编码了
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cn.com.armedpoliceapp.android80test.MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="212dp"
android:text="登录"
android:layout_alignParentEnd="true" />
RelativeLayout>
MainActivity的代码
public class MainActivity extends AppCompatActivity {
private EditText textView,textView2;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView= (EditText) findViewById(R.id.textView);
textView2= (EditText) findViewById(R.id.textView2);
button= (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
requestJava();
}
private void requestJava() {
{
String phpUrl = "http://这里写自己的ap地址:8080/HelloSverlet/LoginServlet";
//volley框架
RequestQueue queue;
//获取方法名
String methodName = "LoginServlet";
//psot请求的参数
final Map postParams = new HashMap();
postParams.put("username", "admin");
postParams.put("password", "123");
//用post请求服务器(volley)框架
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
StringRequest stringRequest = new StringRequest(
Request.Method.POST,
phpUrl,
new Response.Listener() {
@Override
public void onResponse(String response) {
System.out.println("登录结果" + response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override
protected Map getParams() throws AuthFailureError {
Map map = new HashMap();
map = postParams;
System.out.println("服务器的请求Map" + map);
return map;
}
};
//volley框架请求时间的重写
stringRequest.setRetryPolicy(new RetryPolicy() {
@Override
public int getCurrentTimeout() {
return 1000 * 60;
}
@Override
public int getCurrentRetryCount() {
return 1000 * 60;
}
@Override
public void retry(VolleyError volleyError) throws VolleyError {
}
});
requestQueue.add(stringRequest);
}
}
});
}
好了这样就完成了用浏览器请求java(jsp)和Android请求java的登录接口了。但是这里用到的tomcat是eclipse中配置好的tomcat并不是本地服务器的tomcat如果想用本地的tomcat只需要把Java项目弄成war包放到本地tomcat的webapps目录下即可访问