实验二+编写与使用Servlet

实验目标:

1、 理解Servlet文件各部分所表示的含义,掌握如何编写Servlet;
2、 学习如何部署与运行Servlet,练习使用注释法和配置文件Server.xml进行Servlet的部署和发布。
3、 熟悉Html文件的表单知识,学会进行表单编程

实验内容:

(第一、二题必做,第三题必做,如不能完成就课后做)

1. 新建项目,练习教材上相关例子Hello.java文件,P29。并练习如何在Tomcat服务器上发布该文件

1) HelloServlet文件内容
在这里插入图片描述

2) 请分别用注释法和文件配置法(web.xml)来完成对HelloServlet文件的发布。
注释法访问的地址是 http://127.0.0.1:8080/项目工程名/test2/hello.view(请注意要根据题目要求修改代码中的注释内容)
文件配置法的地址是http://127.0.0.1:8080/项目工程名/test2/hello.do

2. 请编写WelcomeYou.java文件,代码内容如下图,

在这里插入图片描述

1) 图中第25行是何意思?
2) 编写好之后请用如下两个地址来分别访问该文件:
http://127.0.0.1:8080/项目工程名/test2/welcome?user=‘李华’
http://127.0.0.1:8080/项目工程名/test2/welcome?user=‘Lihua’
记录下浏览器的显示内容,并分析其原因。
3. 请编写程序,完成以下功能:

  1. 一个邮箱注册表单register.html文件,具体见图。
  2. 自行编写两个html文件,一个success.jsp成功页面,一个fail.jsp失败页面。
  3. 点击注册按钮后,跳转到成功页面success.jsp。
  4. 尝试:能否在成功页面显示该用户的昵称,邮箱名称?比如“开心,恭喜你!你的happyToday@163.com”
  5. 注意注册页面的表单应当提交什么请求方式
  6. 如果下一步,我还希望能把失败页面加上去,怎么办?
  1. (选作)预习第三章,思考并尝试完成P46的第1,2题。

项目代码:

package cc.openhome;

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;

/**
 * Servlet implementation class HelloServlet
 */
//@WebServlet("/hello.view")
 @WebServlet(name = "helloServlet", urlPatterns= {"/hello.do"})
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.setContentType("text/html;charset = GB2312"); 
		PrintWriter out = response.getWriter();       
		//String name = request.getParameter("name");    
		
		out.println("<html>");
		out.println("<head>");
		out.println("<title>Hello Servlet</title>");
		out.println("/<head>");
		out.println("<body>");
		out.println("<h2>您好,欢迎各位软件工程专业的同学 !<br><br>Hello,Newworld");
		out.println("/<body>");
		out.println("/<html>");
		
		out.close();		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}




运行结果:

在这里插入图片描述在这里插入图片描述

项目代码:

package cc.openhome;

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;

/**
 * Servlet implementation class WelcomeYou
 */
@WebServlet("/WelcomeYou")
public class WelcomeYou extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) 
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		String user = request.getParameter("user");
		String welcomeInfo = "Welcome You " + user +" 同学";
		
		response.setContentType("text/html;Charset = GB2312");
		PrintWriter out = response.getWriter();
		out.println("<HTML>");
		out.println("<HEAD><TITLE>欢迎页面</TITLE></HEAD>");
		out.println("<BODY>");
		out.println(welcomeInfo);
		out.println("</BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 
1)	图中第25行是何意思?
答:把传进来的参数user赋值给变量user
2)	编写好之后请用如下两个地址来分别访问该文件:
http://127.0.0.1:8080/项目工程名/test2/welcome?user=‘李华’

运行结果:

在这里插入图片描述在这里插入图片描述
原因:通过HttpServletRequest的getParamenter()并指定请求参数名称,来获取得用户发送的请求参数值。

项目要求:

  1. 请编写程序,完成以下功能:
  1. 一个邮箱注册表单register.html文件,具体见图。
  2. 自行编写两个html文件,一个success.jsp成功页面,一个fail.jsp失败页面。
  3. 点击注册按钮后,跳转到成功页面success.jsp。
  4. 尝试:能否在成功页面显示该用户的昵称,邮箱名称?比如“开心,恭喜你!你的happyToday@163.com”
  5. 注意注册页面的表单应当提交什么请求方式
  6. 如果下一步,我还希望能把失败页面加上去,怎么办?

项目代码:

register.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册邮箱</title>
</head>
<body>
	<form action="filedeal"method="get">
		您的姓名:<input type = "text" name = "UserName"><br>
		您的邮箱:<input type = "text" name = "UserEmail"><br><br><br>
		<input type = "submit" value ="注册">
		<input type = "reset" value ="重置">
	</form>
</body>
</html>

filedeal.Java文件

package text;

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;

/**
 * Servlet implementation class filedeal
 */
@WebServlet("/filedeal")
public class filedeal extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		String UserName = request.getParameter("UserName");
		String UserEmail = request.getParameter("UserEmail");
		if ( UserEmail !=null  && UserName !=null) {
			request.setAttribute("name",UserName);
			request.setAttribute("email",UserEmail);
			request.getRequestDispatcher("success.jsp").forward(request, response);
		}
		else {
			request.getRequestDispatcher("fail.jsp").forward(request, response);
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

success.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.net.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>恭喜你,注册成功</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		String yourname = (String)request.getAttribute("name");
		String youremail = (String)request.getAttribute("email");
		out.println("<h2> 您的姓名:"+yourname+"</h2><br>");
	    out.println("<h2> 您的邮箱:"+youremail+"</h2><br>");
	%>
		
	
</body>
</html>

fail.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>对不起,注册失败</title>
</head>
<body>
	<h2>对不起,注册失败,请仔细检查数据是否填写正确!</h2>
</body>
</html>

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐