Hello,Servlet (Servlet实现后台接口开发)

JDK

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
环境变量配置:百度或者谷歌吧。

IDE

推荐IDEA,当然使用Eclipse的还是挺多的。
IDEA下载地址:
https://www.jetbrains.com/idea/
Eclipse下载地址:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplersr2

TOMCAT

Tomcat下载地址:http://tomcat.apache.org/

MySQL

MySQL下载地址:https://www.mysql.com/downloads/
安装时设置的账户密码要好记,比如(root,123456)


  • 注册IDEA。
    获得IDEA注册码或者使用破解版可参考 http://idea.lanyus.com || http://idea.iteblog.com

  • 好了,开始创建项目吧。
    File->New Project->Java->勾选Web Application->Next
    Project name就叫做HelloServlet吧,然后Finish。
    我们发现web目录下面有个index.jsp文件,这个就是我们web项目的主页面了,需要配置上Tomcat才可以在浏览器上看到哦.

  • 配置Tomcat
    如何在IntelliJ IDEA中快速配置Tomcat

    配置Tomcat前

    按照上面教程配置完后,我们在浏览器看一下,直接点击绿色的运行按钮就行了。(我把tomcat的conf目录下的server.xml中的8080端口改成80了,所以不显示端口号了)
    运行后效果

  • 下面我们开始写代码了,创建一个数据库,新建一个User表,来做一个简单的登录功能。

  • 首先要配置MySQL
    IntelliJ IDEA手动配置连接MySQL数据库

  • 连接上MySQL后,我们来创建一个数据库并创建users表。


    这个写SQL真方便

    写完后直接点击左侧绿箭头执行,语句多了可以选中要执行的SQL然后再点。


    执行结果

    插入一条数据:
INSERT users(name, pwd) VALUES ("xiaoming","123456");
  • 在src下新建包,zzm.demo。
    然后新建Java文件AccountBean
public class AccountBean {
    private String username = "";
    private String password = "";
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}

新建Java文件DBHelper

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBHelper {

    public static final String url = "jdbc:mysql://127.0.0.1/TestDemo";
    public static final String name = "com.mysql.jdbc.Driver";
    public static final String user = "root";
    public static final String password = "123456";

    public Connection conn = null;
    public Statement sql;

    public DBHelper() {
        try {
            Class.forName(name);//指定连接类型
            conn = DriverManager.getConnection(url, user, password);//获取连接
            sql = conn.createStatement();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void close() {
        try {
            this.conn.close();
            this.sql.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

再新建Java文件HelloServlet

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
public class HelloServlet extends HttpServlet {
    private String sql ;
    private DBHelper db;
    @Override
    public void init() throws ServletException {
        db = new DBHelper();
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        AccountBean account = new AccountBean();
        String username = req.getParameter("username");
        String userpwd = req.getParameter("userpwd");
        if(username==null||userpwd==null){
            return;
        }
        try {
            //这里简写了,应该先查是否有该用户,再查该用户密码是否正确
            sql = "SELECT *FROM users WHERE name=\""+username+"\" AND pwd=\""+userpwd+"\"";
            ResultSet ret = db.sql.executeQuery(sql);
            if(ret.next()){
                account.setUsername(username);
                account.setPassword(userpwd);
                session.setAttribute("account", account);
                String login_suc = "Success.jsp";
                resp.sendRedirect(login_suc);
            }
            ret.close();
            db.close();//关闭连接
            return;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        String login_fail = "Fail.jsp";
        resp.sendRedirect(login_fail);
        return;
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
        doGet(req,response);
    }
}

修改index.jsp,添加登录输入框:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>HelloWeb</title>
</head>
<body>
<h1>登录</h1>
<form action="login">
    username:<input type="text" name="username"><br>
    password:<input type="password" name="userpwd"><br>
    <input type="submit">
</form>
</body>
</html>

在web目录下新建Success.jsp和Fail.jsp

<%@ page import="zzm.demo.AccountBean" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<br>
登录成功</br>
<%
    AccountBean account = (AccountBean) session.getAttribute("account");
%>
欢迎你:<%= account.getUsername()%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
Login Failed! <br>
</body>
</html>

最重要的,不要忘了配置Servlet地址
在web目录下的WEB-INF目录下的web.xml文件中配置

<?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">
    <servlet>
        <servlet-name>helloServlet</servlet-name>
        <servlet-class>zzm.demo.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
</web-app>

准备工作完成,我们来运行一下,选择Restart server重启服务。


输入小明的账户和密码

输入我们插入的小明的账户和密码然后点击提交:

跳转到了登录成功后的页面

当然,如果不是小明的话或者小明忘了密码就会进入到失败页面哦,快来试试吧

你不是小明
  • 运行的时候会报一个空指针的错误,是因为找不到com.mysql.jdbc.Driver这个驱动
    解决办法,去http://www.mysql.com/downloads/connector/j
    下载mysql-connector-java-5.1.41-bin.jar包,然后放在tomcat安装目录的lib文件夹下就行了。

  • 如何把我们开发的这个login接口提供给移动端来使用呢?
    当你运行了项目,服务处在运行中,那么你的接口就可以在内网提供给别人使用了。
    在终端输入ipconfig,获取自己的内网ip,比如我的是:

ip地址

那么我提供的接口地址就是
http://10.200.1.109/login?username=xiaoming&userpwd=123456
(点了没反应,因为外网访问不了哦,如果想让外网访问,去买台服务器吧。
注:别人用的是这个地址,自己的电脑用localhost或者127.0.0.1)
这是个get请求,关于post的也差不多,移动端调用这个接口就可以进行登录啦。
关于Tomcat的服务器地址配置大家可自行百度谷歌。


结束语,这只是个小例子,大家参考一下就行啦。

参考链接:
http://blog.csdn.net/qq_27093465/article/details/51644825
http://www.cnblogs.com/shijiaoyun/p/5882281.html
http://www.cnblogs.com/GarfieldEr007/p/5746137.html
http://blog.csdn.net/huluedeai/article/details/50414494

推荐阅读更多精彩内容