JavaWeb之Servlet編程實例二

使用Servlet可以讀取用戶輸入的信息並跳轉頁面顯示出來,代碼如下:

LoginServlet代碼:

package com.djx.sevlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpsServer;

import sun.security.krb5.internal.SeqNumber;

public class LoginServlet extends HttpServlet{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

/*	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username=req.getParameter("uname");
		String upassword=req.getParameter("upwd");
		System.out.println("用戶名:"+username);
		System.out.println("密碼:"+upassword);
		//super.service(req, resp);
	}*/

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("進入doGet方法");
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("進入doPost方法");
		String username=req.getParameter("uname");
		String upassword=req.getParameter("upwd");
		System.out.println("用戶名:"+username);
		System.out.println("密碼:"+upassword);
		
		String forward=null;
		
		if (username=="djx" && upassword=="123") {
			//請求重定向
			//	resp.sendRedirect(req.getContextPath()+"/15/success.jsp");
		
			forward="/15/success.jsp";
			RequestDispatcher rd=req.getRequestDispatcher(forward);
			rd.forward(req, resp);
		}else{
			//resp.sendRedirect(req.getContextPath()+"/15/error.jsp");
			forward="/15/success.jsp";
			RequestDispatcher rd=req.getRequestDispatcher(forward);
			rd.forward(req, resp);
			
		}
		//super.doPost(req, resp);
	}
	
}
login.jsp代碼如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<form action="<%=request.getContextPath()%>/LoginServlet" method="post">
		用戶名:<input type="text" name="uname"><br/>
		密 碼:<input type="password" name="upwd"><br/>
		<input type="submit" value="提交">
		<input type="reset" value="重置">
	</form>
</body>
</html>

success.js代碼如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登錄成功頁面提示</title>
</head>
<body>
登陸成功。<br/>
您提交的信息爲:<br/>
用戶名:<%=request.getParameter("uname") %><br/>
密碼:<%=request.getParameter("upwd") %><br/>
<a href="login.jsp">返回登錄頁面</a>
</body>
</html>

error.jsp代碼:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登錄失敗提示</title>
</head>
<body>
登陸失敗。<br/>
您提交的信息爲:<br/>
用戶名:<%=request.getParameter("uname") %><br/>
密碼:<%=request.getParameter("upwd") %><br/>
<a href="login.jsp">返回登錄頁面</a>
</body>
</html>

在xml文件加入如下代碼:

<servlet>
  	<servlet-name>LoginServlet</servlet-name>
  	<servlet-class>com.djx.sevlet.LoginServlet</servlet-class>
 </servlet>
<servlet-mapping>
  <servlet-name>LoginServlet</servlet-name>
  <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>


使用response對象的請求重定向雖然能夠成功跳轉頁面但是並不能顯示輸入的信息,但是使用請求轉發就可以成功跳轉並輸出信息。請求轉發只能在相同組件間跳轉,但是請求重定向卻可以在不同組件間跳轉。


發佈了78 篇原創文章 · 獲贊 28 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章