当前位置:首页 » 《资源分享》 » 正文

java web实验一

11 人参与  2024年04月07日 18:25  分类 : 《资源分享》  评论

点击全文阅读


基于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);    }}

运行结果:


点击全文阅读


本文链接:http://zhangshiyu.com/post/91925.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1