JavaWEB-Servlet接受前端数据和向前端传数据

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

更多可见个人博客

目录

这里以一个登录页面和一个展示登录的用户数据的页面,都是采用的JSP实现。解决了中文乱码问题。

JavaBean

package com.tothefor.Three18;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Author DragonOne
 * @Date 2022/3/18 17:18
 * @墨水记忆 www.tothefor.com
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
    private String username;
    private String password;
}

Servlet

package com.tothefor.Three18;

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

/**
 * @Author DragonOne
 * @Date 2022/3/18 17:36
 * @墨水记忆 www.tothefor.com
 */
@WebServlet("/userJSP")
public class UserController extends HttpServlet {


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.setHeader("Content-type","text/html;charset=UTF-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        User ser = new User();
        ser.setUsername(username);
        ser.setPassword(password);
      //把注册成功的用户对象保存在session中
        req.getSession().setAttribute("user",ser);
      //跳转到注册成功页面-> userJSP.jsp,同时传递这request 和 response 对象
        req.getRequestDispatcher("userJSP.jsp").forward(req,resp);
    }

    /**
     * @Author DragonOne
     * @Date 2022/3/15
     * @墨水记忆 www.tothefor.com
     * @方法名称 doPost
     * @方法描述 Post请求
     * @参数说明
     * @返回值
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, ServletException, IOException {
        doGet(req,resp);
    }
}

loginJSP.jsp

用来获取数据。

<%--
  Created by IntelliJ IDEA.
  User: dragonone
  Date: 2022/3/18
  Time: 19:05
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login</title>
</head>
<body>
<form action="/ServletTest_war_exploded/userJSP" method="post">
  用户名:<input type="text" name="username"> <br>
  密 码:<input type="password" name="password"> <br>
  <input type="submit" value="注册">
</form>

</body>
</html>

userJSP.jsp

用户展示数据。

<%@ page import="com.tothefor.Three18.User" %><%--
  Created by IntelliJ IDEA.
  User: dragonone
  Date: 2022/3/18
  Time: 17:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>User</title>
</head>
<body>
<h2>数据展示</h2>

<jsp:useBean id="user" scope="session" class="com.tothefor.Three18.User" />


<h1>用户名:<span><jsp:getProperty name="user" property="username"/></span></h1>
<h1>密码:<span><jsp:getProperty name="user" property="password"/></span></h1>


</body>
</html>

解释

<jsp:useBean id="user" scope="session" class="com.tothefor.Three18.User" />

用于来获取 Bean 对象 user。注意这个 id 必须是 Servlet类中setAttribute("user",ser); 中的键。

  • scope="session" 表示这个对象是 session 级别。

  • class="com.tothefor.Three18.User" 表明这个对象的类的全限定名称。

  • <jsp:getProperty name="user" property="username" /> 这个就是输出这个Bean 对象的一些属性值。name 就是 useBean 中的 idproperty 就是 Bean 中的属性。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值