Javaweb动态页面的小型demo,配置servlet。(包含view和controller))

1.先建立一个动态网站工程

Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第1张图片

2. 建立一个包,里面包含了view包和controller包

Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第2张图片
由于时间方面,直接用了当前有的小demo,把ui改为view,不影响结果,一样可以实现相同效果。
view实现的是动态视图
controller用于逻辑处理

3.view的实现

登录页面

package cn.day01.ui;

import java.io.IOException;
import java.io.PrintWriter;

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

public class LoginUI extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//setting encoding
		req.setCharacterEncoding("UTF-8");
		resp.setCharacterEncoding("UTF-8");
		PrintWriter writer = resp.getWriter();
		writer.println("");
		writer.println("");
		writer.println("");
		writer.println("");
		writer.println("登录");
		writer.println("");
		writer.println("");
		if (req.getAttribute("mesg")!=null) {
			writer.print(req.getAttribute("mesg"));
		}
	
		writer.println("==用户登录==
"); writer.println("
"); writer.println("用户名:
"); writer.println("密码:
"); writer.println(""); writer.println("
"); writer.println(""); writer.println(""); } }

@Override的使用,右单击一下
Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第3张图片
Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第4张图片
勾选上service就行了。
req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8");
这两句是防止中文乱码的。

if (req.getAttribute("mesg")!=null) {
			writer.print(req.getAttribute("mesg"));
		}

判断密码是否正确的语句。

成功页面


    package cn.day01.ui;

import java.io.IOException;
import java.io.PrintWriter;

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

public class SuccessUI extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//setting encoding
		req.setCharacterEncoding("UTF-8");
		resp.setCharacterEncoding("UTF-8");
		PrintWriter writer = resp.getWriter();
		writer.println("");
		writer.println("");
		writer.println("");
		writer.println("");
		writer.println("成功");
		writer.println("");
		writer.println("");
		
		writer.println("欢迎你来到本网站!亲爱的"+req.getAttribute("username")+",你的密码是"+req.getAttribute("password")+"。");
		writer.println("");
		writer.println("");
	}
}


Controller(控制台的编写)

package cn.day01.controller;


import java.io.IOException;

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

public class LoginController extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//		设置请求接收编码
		req.setCharacterEncoding("UTF-8");
//		设置响应返回编码
		resp.setCharacterEncoding("UTF-8");
		//username
		String username = req.getParameter("username");
	
		//password
		String password = req.getParameter("password");
//		判断用户名和密码
		if ("admin".equals(username)&&"admin".equals(password)) {
			System.out.println("用户名:"+username+",密码:"+password);
			//请求发送用户名和密码
			req.setAttribute("username", username);
			req.setAttribute("password", password);
			req.getRequestDispatcher("/success.ui").forward(req, resp);
		} else {
			req.setAttribute("mesg", "用户名或密码错误!");
			//resp.sendRedirect(req.getContextPath()+"/login.ui");
			//使用相对路径定位到跳转页面
			req.getRequestDispatcher("/login.ui").forward(req, resp);
		}

	}
}

web.xml的配置



  javaweb-demo-01


  
  	loginUI
  	cn.day01.ui.LoginUI
  
  
  
  	loginUI
  	/login.ui
  
  
  
  	successUI
  	cn.day01.ui.SuccessUI
  
  
  
  	successUI
  	/success.ui
  
  
  
   
  	loginController
  	cn.day01.controller.LoginController
  
  
  
  	loginController
  	/login
  
  
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  

这里要注意下大小写,一般首字母都是小写,但是servlet-class里面的必须是绝对路径
Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第5张图片
粘贴过去就行了
还有url-pattern要有斜杠,斜杠是等值匹配的意思。

效果

只要不输入admin就会提示密码错误。
Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第6张图片
输入了admin后就会跳转到成功页面
Javaweb动态页面的小型demo,配置servlet。(包含view和controller))_第7张图片
这样大概就是成功了。

你可能感兴趣的:(javaweb)