java web实验一

来碗牛杂 2024-10-18 14:33:01 阅读 89

基于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类

<code>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类

<code>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类

<code>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类

<code>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);

}

}

运行结果:



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。