Servlet:response,request小案例
案例描述
按照下面的页面做一个用户注册的Sevlet,要求自己设计表,并将表单的数据写入到表中。并提交代码。
<html>
<style>
td {
border-width: 1px;
border-style: solid;
}
</style>
<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(function() {
/**
* 增加验证学生身份证号是否存在功能
*/
$("#btn_create").click(function(){
var regName =/^[\u4e00-\u9fa5]{2,4}$/;
if(!regName.test($.trim($("#stuName").val()))){
alert('真实姓名填写有误');
$("#stuName").focus();
return ;
}
var regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(!regIdNo.test($.trim($("#idcard").val()))){
alert('身份证号填写有误');
$("#idcard").focus();
return false;
}
var regGrade = /^[0-9]{4}$/;
if(!regGrade.test($.trim($("#grade").val()))){
alert('年级必须是一个四位的数字');
$("#grade").focus();
return false;
}
if(!(/^1\d{10}$/.test($.trim($("#tel").val())))){
alert("手机号码有误,请重填");
$("#tel").focus();
return false;
}
$("#form1").submit();
});
});
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="save.do" method="post" id="form1">
<table border="1" align="center"
style="background-color: silver; font-size: 6px; border: solid; border-width: 1px">
<caption>学员信息管理</caption>
<tr>
<td>学生姓名</td>
<td><input type="text" name="name" id="stuName"></td>
<td>性别</td>
<td><input type="radio" name="sex" checked="checked" value="男">男<input
type="radio" name="sex" value="女">女</td>
<tr>
<tr>
<td>学历</td>
<td><select name="degree" id="degree" style="width: 150px">
<option>高中</option>
<option>专科</option>
<option>本科</option>
<option>硕士</option>
<option>博士</option>
</select></td>
<td>身份证号</td>
<td><input type="text" id="idcard" name="idcard" >
<span style="color:royalblue;font-size: medium"></span></td>
<tr>
<tr>
<td>班级</td>
<td><select name="tclass" id="classId"
style="width: 150px">
<option>java</option>
<option>python</option>
<option>软件测试</option>
<option>大数据</option>
<option>web前端</option>
</select></td>
<td>讲师</td>
<td><select name="teacher" id="teacherId"
style="width: 100px">
<option value="1">张三丰</option>
<option value="2">鬼谷子</option>
<option value="3">王阳明</option>
<option value="4">孔子</option>
<option value="5">孟子</option>
</select></td>
<tr>
<tr>
<td>学校</td>
<td><select name="school.schoolId" id="schoolId"
style="width: 160px">
<option value="001">清华大学</option>
<option value="002">北京大学</option>
<option value="003">哈尔滨工业大学</option>
<option value="004">南京大学</option>
<option value="005">上海交通大学</option>
<option value="006">复旦大学</option>
<option value="007">中国科技大学</option>
<option value="008">浙江大学</option>
<option value="009">西安交通大学</option>
</select></td>
<td>专业</td>
<td><input type="text" name="major"></td>
<tr>
<tr>
<td>年级</td>
<td><input type="text" name="grade" id="grade"></td>
<td>联系电话</td>
<td><input type="text" name="tel" id="tel"></td>
<tr>
<tr>
<td>家庭住址</td>
<td><textarea rows="4" cols="30" name="address"></textarea></td>
<td>备注</td>
<td><textarea rows="4" cols="30" name="comment"></textarea></td>
<tr>
<tr align="right">
<td colspan="4"><input type="button" value="创建" id="btn_create"></td>
<tr>
</table>
</form>
</body>
</html>
个人理解:题意我不是十分确定,我的理解就是上面表信息填写好后,对表中信息进行提取,然后显示在另一个页面中
浅谈servlet
这里浅谈servlet,详细servlet相关知识,本人整理后会发布
理解servlet
什么是servlet?
- 简单理解:就是一个规范,这个规范中包含了很多关于javaweb的API
- 理解:就是运行在服务器端的小组件
- 作用:接收客户端的请求,并对请求做出响应(返回一个html),通常适用http协议
如何开发servlet
- 定义一个类,实现servlet接口或者继承HttpServlet
- 重写service方法,一般来说会重写doGet(),dopost()
- 映射一个url
- 部署到tomcat中,并启动
代码及结果展示
先给大家看下我的结果展示
不知道为什么会出现乱码,我考虑过可能是servlet中字符集和浏览器不一致,但还是没解决,如果大家知道怎么解决,麻烦评论区留下言,或者微信联系也可,感谢
下面代码:
package com.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
@WebServlet(name = "saveServlet", value = "/admin/save.do")
public class saveServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//获得表信息
String name=request.getParameter("name");
System.out.println(name);
String sex=request.getParameter("sex");
System.out.println(sex);
String degree=request.getParameter("degree");
System.out.println(degree);
String idcard=request.getParameter("idcard");
System.out.println(idcard);
String tclass=request.getParameter("tclass");
System.out.println(tclass);
String teacher=request.getParameter("teacher");
System.out.println(teacher);
String schoolSchoolId=request.getParameter("school.schoolId");
System.out.println(schoolSchoolId);
String major=request.getParameter("major");
System.out.println(major);
String grade=request.getParameter("grade");
System.out.println(grade);
String tel=request.getParameter("tel");
System.out.println(tel);
String address=request.getParameter("address");
System.out.println(address);
String comment=request.getParameter("comment");
System.out.println(comment);
//反应
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type","text/html;charset=utf-8");
PrintWriter printWriter= response.getWriter();
printWriter.write("<html><head><title>自制表格</title></head><body>");
printWriter.write("<table>\n" +
" <tr>\n" +
" <td>学生姓名</td>");
printWriter.write("<td>"+name+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>性别</td>");
printWriter.write("<td>"+sex+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>学历</td>");
printWriter.write("<td>"+degree+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>身份证号</td>");
printWriter.write("<td>"+idcard+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>班级</td>");
printWriter.write("<td>"+tclass+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>讲师</td>");
printWriter.write("<td>"+teacher+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>学校</td>");
printWriter.write("<td>"+schoolSchoolId+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>专业</td>");
printWriter.write("<td>"+major+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>年级</td>");
printWriter.write("<td>"+grade+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>联系电话</td>");
printWriter.write("<td>"+tel+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>家庭住址</td>");
printWriter.write("<td>"+address+"</td>");
printWriter.write("</tr>\n" +
" <tr>\n" +
" <td>备注</td>");
printWriter.write("<td>"+comment+"</td>");
printWriter.write("</tr>\n" +
"</table>\n" +
"\n" +
"</body>\n" +
"</html>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}
<!DOCTYPE html>
<html lang="en">
<style>
td {
border-width: 1px;
border-style: solid;
}
</style>
<script type="text/javascript" src="js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(function() {
/**
* 增加验证学生身份证号是否存在功能
*/
$("#btn_create").click(function(){
var regName =/^[\u4e00-\u9fa5]{2,4}$/;
if(!regName.test($.trim($("#stuName").val()))){
alert('真实姓名填写有误');
$("#stuName").focus();
return ;
}
var regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(!regIdNo.test($.trim($("#idcard").val()))){
alert('身份证号填写有误');
$("#idcard").focus();
return false;
}
var regGrade = /^[0-9]{4}$/;
if(!regGrade.test($.trim($("#grade").val()))){
alert('年级必须是一个四位的数字');
$("#grade").focus();
return false;
}
if(!(/^1\d{10}$/.test($.trim($("#tel").val())))){
alert("手机号码有误,请重填");
$("#tel").focus();
return false;
}
$("#form1").submit();
});
});
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="save.do" method="post" id="form1">
<table border="1" align="center"
style="background-color: silver; font-size: 6px; border: solid; border-width: 1px">
<caption>学员信息管理</caption>
<tr>
<td>学生姓名</td>
<td><input type="text" name="name" id="stuName"></td>
<td>性别</td>
<td><input type="radio" name="sex" checked="checked" value="男">男<input
type="radio" name="sex" value="女">女</td>
<tr>
<tr>
<td>学历</td>
<td><select name="degree" id="degree" style="width: 150px">
<option>高中</option>
<option>专科</option>
<option>本科</option>
<option>硕士</option>
<option>博士</option>
</select></td>
<td>身份证号</td>
<td><input type="text" id="idcard" name="idcard" >
<span style="color:royalblue;font-size: medium"></span></td>
<tr>
<tr>
<td>班级</td>
<td><select name="tclass" id="classId"
style="width: 150px">
<option>java</option>
<option>python</option>
<option>软件测试</option>
<option>大数据</option>
<option>web前端</option>
</select></td>
<td>讲师</td>
<td><select name="teacher" id="teacherId"
style="width: 100px">
<option value="1">张三丰</option>
<option value="2">鬼谷子</option>
<option value="3">王阳明</option>
<option value="4">孔子</option>
<option value="5">孟子</option>
</select></td>
<tr>
<tr>
<td>学校</td>
<td><select name="school.schoolId" id="schoolId"
style="width: 160px">
<option value="001">清华大学</option>
<option value="002">北京大学</option>
<option value="003">哈尔滨工业大学</option>
<option value="004">南京大学</option>
<option value="005">上海交通大学</option>
<option value="006">复旦大学</option>
<option value="007">中国科技大学</option>
<option value="008">浙江大学</option>
<option value="009">西安交通大学</option>
</select></td>
<td>专业</td>
<td><input type="text" name="major"></td>
<tr>
<tr>
<td>年级</td>
<td><input type="text" name="grade" id="grade"></td>
<td>联系电话</td>
<td><input type="text" name="tel" id="tel"></td>
<tr>
<tr>
<td>家庭住址</td>
<td><textarea rows="4" cols="30" name="address"></textarea></td>
<td>备注</td>
<td><textarea rows="4" cols="30" name="comment"></textarea></td>
<tr>
<tr align="right">
<td colspan="4"><input type="submit" value="创建" id="btn_create"></td>
<tr>
</table>
</form>
</body>
</html>