基于IDEA2023.3.5版Tomcat11.0.0版
一、请按照以下要求创建Servlet01类。
要求如下:
(1)在Web项目中定义一个HelloWorldServlet类,其中定义了 init()、destroy()方法。
(2)在service()、init()、destroy()三个方法中分别添加输出语句。
(3)使用@WebServlet注解配置Servlet02的映射信息,并在tomcat服务器中部署该Web项目。
(4)启动Tomcat服务器,使用浏览器访问Servlet01映射的url地址,观察控制台输出内容。
(5)确保中文文本正常显示。
HelloWorldServlet类
package org.example.demo2;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServlet;
@WebServlet(name = "HelloWorldServlet",urlPatterns = "/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("init method is called");
}
public void service(ServletRequest request, ServletResponse response)throws ServletException{
System.out.println("Hello World");
}
public void destroy(){
System.out.println("destroy method is called");
}
}
Servlet01类
package org.example.demo2;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "Servlet01", urlPatterns = "/Servlet01")
public class Servlet01 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
PrintWriter out =response.getWriter();
out.print("Hello Servlet");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
PrintWriter out =response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.print("Hello Servlet<br/>");
out.print("中文");
}
}
运行结果:
二、请按照以下要求设计一个Servlet02类。
要求如下:
(1)在Web项目中创建Servlet02类,继承HttpServlet类,重写其doGet()和doPost()方法,并在这两个方法中分别编写输出不同内容的代码。
(2)在项目的web目录下创建一个登陆页面login.html,采用post方式提交给Servlet02处理。
(3)使用@WebServlet注解配置Servlet02的映射信息。
(4)部署项目并启动Tomcat服务器,使用浏览器采用Get方式访问Servlet02映射的url地址,观察页面显示内容。
(5)重新使用浏览器成功访问login.html页面后,提交表单,再次观察页面显示内容。
(6)确保中文文本正常显示。
Servlet02类
package org.example.demo2;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "Servlet02",urlPatterns = "/Servlet02")
public class Servlet02 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
String name = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("用户名:" + name);
System.out.println("密 码:" + password);
//获取参数名为“hobby”的值
String[] hobby = request.getParameterValues("hobby");
System.out.print("爱好:");
for (int i = 0; i < hobby.length; i++) {
System.out.print(hobby[i] + ",");
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
doGet(request,response);
}
}
运行结果:
三、请按照以下要求设计一个向页面输出中文的类ChineseServlet。要求如下:
(1)创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
(2)在doGet()方法中,使用HttpServletResponse对象的setContentType()方法将浏览器编码改为utf-8。
(3)使用HttpServletResponse对象获取输出流,向浏览器输出“JavaWeb程序设计任务教程”的中文字样。
ChineseServlet类
package org.example.demo2;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "ChineseServlet", urlPatterns = "/ChineseServlet")
public class ChineseServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html;charset=utf-8");
String data = "JavaWeb程序设计任务教程";
PrintWriter out = response.getWriter();
out.println(data);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doGet(request,response);
}
}
运行结果:
四、编写一个Servlet,实现统计网站被访问次数的功能。
要求如下
(1)新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法。
(2)在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加1。
(3)获取ServletContext,通过它的功能记住上一次访问后的次数。
ShowTimesServlet类
package org.example.demo2;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.ServletContext;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "ShowTimesServlet", urlPatterns = "/ShowTimesServlet")
public class ShowTimesServlet extends HttpServlet {
// private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取 ServletContext
ServletContext context = getServletContext();
// 获取当前的访问次数
Integer times = (Integer) context.getAttribute("visitTimes");
if (times == null) {
times = 0; // 如果是第一次访问,则初始化次数为0
}
// 访问次数加1
times++;
// 将更新后的访问次数保存到 ServletContext 中
context.setAttribute("visitTimes", times);
// 输出访问次数到页面
response.setContentType("text/html");
response.getWriter().println("<h1>网站被访问次数:" + times + "</h1>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 在 doPost 方法中调用 doGet 方法
doGet(request, response);
}
}
运行结果:
版权归原作者 来碗牛杂 所有, 如有侵权,请联系我们删除。