一、前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src='js/jquery.js'></script>
    <script>
    /*
    1.传参方式不同
    get 传参 url:"index?account=admin&password=123456"
    */
    /*
    post 传参 data:{	account:"admin",
            password:"123456"
        }
    */
    //2 只要是能写地址的地方都可以发起 get 请求,浏览器地址栏一般用于查找
    //post 通过 jquery + ajax + form 修改、添加、删除
        $.ajax({
            url:"IndexServlet",
            type:"get",
            data:{
                account:"admin",
                password:"123456"
            },
            success:function(value){
                console.log(value);
                console.log("登录成功");
            },
            error:function(){
                
            }
        })
    </script>
</head>
<body>
    <h1>hello</h1>
    
    <a href="IndexServlet?account=admin&password=123456">点击</a>
</body>
</html>

在上述前端代码中,我们使用了 jQuery 的 ajax 方法来与后端进行交互。这里我们指定了请求的 URL 为 "IndexServlet",请求方式为 "get",并传递了账号和密码参数。在 success 回调函数中,我们可以处理后端返回的成功响应,这里只是简单地在控制台打印返回的值和 “登录成功” 的消息。在 error 回调函数中,目前没有具体的处理逻辑,可以根据实际需求添加错误处理代码。

此外,页面中还有一个 <a> 标签,点击它也会以 GET 方式向 "IndexServlet" 发送请求,并携带账号和密码参数。

二、后端代码

package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class IndexServlet
 */
@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public IndexServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 解决中文乱码
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        // 接受参数
        String acc = request.getParameter("account");
        String pass = request.getParameter("password");

        response.setContentType("text/json;charset=utf-8");

        System.out.println("账号为" + acc);
        System.out.println("密码为" + pass);

        String res;
        if (acc.equals("admin") && pass.equals("123456")) {
            System.out.println("登录成功");
            res = "{\"name\":\"lzc\",\"age\":\"12\",\"site\":\"1111\"}";
        } else {
            res = "登陆失败";
            System.out.println("登录失败");
        }
        // 后端给前端返回数据
        response.getWriter().write(res);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 这里将 POST 请求转发到 doGet 方法进行处理
        doGet(request, response);
    }
}

后端代码是一个 Java Servlet,用于处理来自前端的请求。在 doGet 方法中,首先设置了请求和响应的字符编码为 "utf-8",以确保中文能够正确处理。然后通过 request.getParameter 方法获取前端传递的账号和密码参数。接着设置响应的内容类型为 "text/json;charset=utf-8",表示返回的是 JSON 格式的数据且字符编码为 UTF-8。

如果账号和密码正确(这里是固定的 "admin" 和 "123456"),则返回一个包含用户信息的 JSON 字符串;如果不正确,则返回 "登陆失败"

在 doPost 方法中,将 POST 请求转发到 doGet 方法进行处理,这样可以使 POST 请求和 GET 请求的处理逻辑保持一致。

通过以上代码示例,我们可以看到在 Eclipse 中实现前后端交互的基本方法。在实际开发中,可以根据具体需求进行扩展和优化,例如添加更复杂的业务逻辑、使用数据库进行数据存储等。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部