- 建立一个 Servlet 文件 accept.java 和一个 register.jsp 文件,实现用 Servlet 实现获取 表单数据的功能。 ¨ 程序功能:利用 Servlet 的方式实现表单数据的获取。 ¨ 参考源代码:
accept.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/AcceptServlet")
public class accept extends HttpServlet {
public accept() {
}
public String codeToString(String str) {
String s = str;
try {
byte[] tempB = s.getBytes("ISO-8859-1");
s = new String(tempB);
return s;
} catch (Exception var4) {
return str;
}
}
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<HTML><head><title>接收新用户注册 </title></head><BODY>");
out.println("这是新用户注册所提交的数据:<br>");
out.println("用户名是: " + this.codeToString(request.getParameter("username")) + "<br>");
out.println("密码是: " + this.codeToString(request.getParameter("userpassword")) + "<br>");
out.println("性别是: " + this.codeToString(request.getParameter("sex")) + "<br>");
out.println("出生年月是: " + request.getParameter("year") + request.getParameter("month") + request.getParameter("day") + "<br>");
out.println("电子邮箱是:" + request.getParameter("email") + "<br>");
out.println("家庭住址是: " + this.codeToString(request.getParameter("address")) + "<br>");
out.println("</body> </html>");
}
}import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/AcceptServlet")
public class accept extends HttpServlet {
public accept() {
}
public String codeToString(String str) {
String s = str;
try {
byte[] tempB = s.getBytes("ISO-8859-1");
s = new String(tempB);
return s;
} catch (Exception var4) {
return str;
}
}
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<HTML><head><title>接收新用户注册 </title></head><BODY>");
out.println("这是新用户注册所提交的数据:<br>");
out.println("用户名是: " + this.codeToString(request.getParameter("username")) + "<br>");
out.println("密码是: " + this.codeToString(request.getParameter("userpassword")) + "<br>");
out.println("性别是: " + this.codeToString(request.getParameter("sex")) + "<br>");
out.println("出生年月是: " + request.getParameter("year") + request.getParameter("month") + request.getParameter("day") + "<br>");
out.println("电子邮箱是:" + request.getParameter("email") + "<br>");
out.println("家庭住址是: " + this.codeToString(request.getParameter("address")) + "<br>");
out.println("</body> </html>");
}
}
register.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<script language="javascript">
function on_submit(){
if(forml.username.value==""){
alter("用户名不能为空,请输入用户名!");
forml.username.focus();
return false;
}
if(forml.userpassword.value==""){
alter("用户密码不能为空,请输入用户名!");
forml.userpassword.focus();
return false;
}
if(forml.reuserpassword.value==""){
alter("用户确认密码不能为空,请输入用户名!");
forml.reuserpassword.focus();
return false;
}
if(forml.userpassword.value!=forml.reuserpassword.value){
alter("密码与确认密码不同");
forml.userpassword.focus();
return false;
}
if(forml.email.value.length!=0){
for(i=0;i<forml.email.value.length;i++)
if(forml.email.value.charAT(i)=="@")
break;
if(i==forml.email.value.length){
alter("用户确认密码不能为空,请输入用户名!");
forml.reuserpassword.focus();
return false;
}
}
else{
alter("请输入Email!");
forml.email.focus();
return false;
}
}
</script>
<html>
<head>
<title>新用户注册</title>
</head>
<body>
<form method="POST" action="AcceptServlet" name="forml" onsubmit="return on_submit()">
新用户注册<br>
用户名(*):<input type="text" name="username" size="20"><br>
密 码(*):<input type="password" name="userpassword" size="20"><br>
再输一次密码(*):<input type="password" name="reuserpassword" size="20"><br>
性别:<input type="radio" value="男" checked name="sex">男<input type="radio" value="女" checked name="sex">女<br>
出生年月:<input name="year" size="4" maxlength=4>年
<select name="month">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>月
<input name="day" size="3" maxlength=4>日<br>
电子邮箱(*):<input name="email" maxlength=28><br>
家庭住址:<input type="text" name="address" size="20"><br>
<input type="submit" value="提交" name="B1"><input type="submit" value="全部重写" name="B2"><br>
</form>
</body>
</html>
2.编写一个过滤器改变请求编码。编写一个 loginform.html 文件,代码如下
loginform.html
<!DOCTYPE html>
<html>
<head>
<title>使用过滤器改变请求编码</title>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312">
</head>
<body>
<center>
<h2>请输入用户名和口令:</h2>
<form method="post" action="First">
<table>
<tr>
<td>用户名:</td>
<td><input name="name" type="text"></td>
</tr>
<tr>
<td>口 令:</td>
<td><input name="pass" type="password"></td>
</tr>
<tr>
<td></td>
<td>
<input name="ok" type="submit" value="提交">
<input name="cancel" type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
编写处理请求参数的 Servlet
CheckParamServlet.Java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/First")
public class CheckParamServlet extends HttpServlet {
public CheckParamServlet() {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pass = request.getParameter("pass");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html><head><title>Param Test</title></head>");
out.println("<h3 align=center>你的用户名为:" + name + "</h3>");
out.println("<h3 align=center>你的口令为:" + pass + "</h3>");
out.println("</body></html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
下面通过编写一个过滤器改变请求编码
EncodingFilter.java
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig config;
public EncodingFilter() {
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
this.encoding = filterConfig.getInitParameter("Encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request.getCharacterEncoding() == null) {
String encode = this.getEncoding();
if (encode != null) {
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
protected String getEncoding() {
return this.encoding;
}
public void destroy() {
}
}
实现一个查询天气的 web 程序;
使用表单完成城市的输入,提交使用 ajax 完成查询显示
<html>
<meta charset="UTF-8">
<title>天气预报</title>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js"></script>
<script>
$(function(){
$("#ajaxs").on('click',function(){
var values = $("#btn1").val();//获取用户输入的城市
//alert(values);
if(values == ""){
alert("输入不能为空");
return
}
$.ajax({
type:'GET',
dataType:'jsonp',
jsonp:'callback',
jsonpCallback:'test',
url:'http://api.asilu.com/weather/',//接口地址
data:{
"city":values //要发送给服务器的数据
},
success:function(datas){ //服务器返回的数据 通过参数传递给客户端
var data = datas; //datas 就是服务器返回的数据
//console.log(data);
var str="";
str +="<tr align='center'>";
str +="<td>"+data.city+"</td>";
str +="<td>"+data.weather[0].date+"</td>";
str +="<td>"+data.weather[0].temp+"</td>";
str +="<td>"+data.weather[0].wind+"</td>";
str +="<td>"+data.weather[0].weather+"</td>";
str +="</tr>";
$("#citySearch").html(str);
}
});
});
});
</script>
</head>
<body>
<h1>天气查询 </h1>
<table border="1" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>当前城市</th>
<th>当前日期</th>
<th>当前温度</th>
<th>当前风向</th>
<th>当前天气</th>
</tr>
</thead>
<tbody id="citySearch">
</tbody>
</table>
<input type="text" placeholder="请输入查找的城市" id="btn1"/>
<button id="ajaxs">确定</button>
</body>
</html>
。