当前位置: 首页 > news >正文

JSP编写自己的第一个WebServlet实现客户端与服务端交互

我们在项目中找到java目录 下面有一个包路径 然后 我们在下面创建一个类
在这里插入图片描述
我这里叫 TransmissionTest
当然 名字是顺便取的
参考代码如下

package com.example.dom;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;@WebServlet("/1cginServlet")
public class TransmissionTest extends HttpServlet {protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置客户端编码request.setCharacterEncoding("UTF-8");String userName = request.getParameter("userName");request.setAttribute("userName",userName);request.getRequestDispatcher("page.jsp").forward(request,response);return;}
}

这里 我们设置访问路径为 1cginServlet 这个名字也是自己取的
然后 继承 HttpServlet 规则
我们重写它的 service 函数
上来先将编码格式转成 UTF-8
然后 我们通过 getParameter 获取传过来的参数 userName 然后 将接收到的 userName 放入request作用域
最后 服务端跳转向 page.jsp
最后写完了 别忘了 return

然后 我们 index.jsp代码编写如下

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body><form action="1cginServlet" method="post">用户名: <input type="text" name="userName"/><button>提交</button></form>
</body>
</html>

我们写了一个form表单 输入框用于输入用户名 我们定义的接受字段是 userName
然后 表单的提交格式是post 因为post保密性会强一些 然后 我们将数据提交到1cginServlet 就是我们刚刚类设置的路径 我们类中取到的userName字段 就是这个输入框中传递的

然后 我们创建一个page.jsp
编写代码如下

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%out.print("您输入的用户名是: "+ request.getAttribute("userName"));
%>
</body>
</html>

因为 我们类的逻辑是将userName 设入了 request作用域 那么 我们就将他输出在界面上就好了

然后 我们运行项目
例如 我们在 输入框中 顺便输入一个用户名 然后 我们点击提交
在这里插入图片描述
可以看到 展示也是没有任何问题
在这里插入图片描述

http://www.lryc.cn/news/240894.html

相关文章:

  • 三、Keil安装芯片包、下载固件库、建立STM32工程模板
  • 微信相框M1-03花屏抢救照片数据
  • 小程序可拖拽按钮
  • ARM裸机-19(NandFlash和iNand)
  • 机器学习/sklearn笔记:MeanShift
  • opencv-简单图像处理
  • Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell
  • ubuntu20.04安装多版本cuda,切换版本
  • 网络渗透测试(wireshark 抓取QQ图片)
  • gRPC之gRPC负载均衡(客户端负载均衡)(etcd)
  • 语音识别技术paddlespeech的安装和使用
  • 【机器学习】034_多层感知机Part.2_从零实现多层感知机
  • 2023年中职“网络安全“—Web 渗透测试①
  • Android——资源IDnonFinalResIds和“Attribute value must be constant”错误
  • 批量创建表空间数据文件(DM8:达梦数据库)
  • 简单聊聊加密和加签的关系与区别
  • 视频转码方法:多种格式视频批量转FLV视频的技巧
  • 【Java 进阶篇】Redis 数据结构:轻松驾驭多样性
  • 东用科技智能公交识别系统无线传输方案
  • Django批量插入数据及分页器
  • PHP 语法||PHP 变量
  • 【python基础(四)】if语句详解
  • Spring Boot中常用的参数传递注解
  • Quartz .Net 的简单使用
  • 面试Java笔试题精选解答
  • 使用Python画一棵树
  • nginx学习(4)Nginx 负载均衡
  • WSL登录时提示nsenter: cannot open /proc/320/ns/time: No such file or directory的解决办法
  • git修改远程分支名称
  • Django 入门学习总结7-静态文件管理