MVC之简单控制器实现与原理
2016-11-30 18:26
211 查看
内容:
1 搭建 Java Web 开发环境(Eclipse, JDK, Tomcat)
2 新 建 Java Web 工 程 SimpleController , 新 建 HttpServlet 子 类LoginController,使用 RequestDispatcher 实现登录控制器功能如下:
2.1 该控制器能够接受 Http Request 登录请求(请求中携带登录数据用户名、密码)
2.2 该控制器能够将登录请求分发至模型 UserBean,UserBean 完成登录业务处理
2.3 该控制器能够将 UserBean 业务处理结果定向到结果视图;如果登录成功视图定向至 login_success.jsp/html;如果失败,视图定向至login_fail.jsp/html
环境:macos sierra 10.12
IDE:eclipse neon javaee
首先创建Dynamic web project,命名SimpleController
服务器选tomcat9.0 定位到安装路径,servlet选3.1
在工程的webcontent文件夹下创建jsp文件,编写起始页面login.jsp:
前面几行是一些定义,系统自动生成。
功能:将用户输入的用户名存为username,输入的密码存为password,按钮功能为将表单数据传给action(前面指定为login),名字(按钮上的文字)为“login”
这段代码中用到html的三种输入类型:
输入类型:text input type=”text”定义供文本输入的单行输入字段
输入类型:password input type=”password” 定义密码字段: 注释:password
字段中的字符会被做掩码处理(显示为星号或实心圆)。
输入类型:submit input type=”submit”定义提交表单数据至表单处理程序的按钮。
表单处理程序(form-handler)通常是包含处理输入数据的脚本的服务器页面。 在表单的 action
属性中规定表单处理程序(form-handler)
4.写部署描述文件(deployment descriptor,DD)web.xml,放在WEB-INF文件夹:
注释解释得很清楚了,开头几句是格式,照搬就行。
5.写控制器servlet。在Java Resourse文件夹创建package,命名servlet,在包中创建LoginController类:
功能:接受http请求,并转发至其他页面
service()方法,继承自HttpServlet,自动调用doGet()或doPost()。
java.lang.String getParameter(java.lang.String name)用于获取表单信息,返回为String形式。name为html或jsp页面中各种标签的name属性,此处getParameter(“username”)和getParameter(“password”)返回的就是login.jsp页面中用户输入的用户名和密码。
之后将请求分发至模型UserBean,完成登陆业务处理。用这组用户信息创建一个用户类UserBean,调用类方法CheckUser(),若check通过则调用RequestDispatcher getRequestDispatcher(java.lang.String path),path指定了分发的资源路径,RequestDispatcher封装了这个资源。此处用request.getRequestDispatcher(“login_success.jsp”);分发至登陆成功界面。用
request.getRequestDispatcher(“login_fail.jsp”);分发至登陆失败界面。
6.写用户类,和上一步一样,创建bean package,在bean包中创建UserBean类:
7.写登陆成功,登陆失败界面,放在webcontent
8.右键run on server,然后在浏览器输入http://localhost:8080/SimpleController/login.jsp即可看到
9.打包
File—-Export—-选择Web下的WAR file,一路默认即可
10.运行
将生成的SimpleController放到tomcat的webapps目录下,在终端中启动tomcat,访问http://localhost:8080/SimpleController/login.jsp即可看到同样结果
1 搭建 Java Web 开发环境(Eclipse, JDK, Tomcat)
2 新 建 Java Web 工 程 SimpleController , 新 建 HttpServlet 子 类LoginController,使用 RequestDispatcher 实现登录控制器功能如下:
2.1 该控制器能够接受 Http Request 登录请求(请求中携带登录数据用户名、密码)
2.2 该控制器能够将登录请求分发至模型 UserBean,UserBean 完成登录业务处理
2.3 该控制器能够将 UserBean 业务处理结果定向到结果视图;如果登录成功视图定向至 login_success.jsp/html;如果失败,视图定向至login_fail.jsp/html
环境:macos sierra 10.12
IDE:eclipse neon javaee
首先创建Dynamic web project,命名SimpleController
服务器选tomcat9.0 定位到安装路径,servlet选3.1
在工程的webcontent文件夹下创建jsp文件,编写起始页面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>Index</title> </head> <body> <form action="login" method="post"> <!-- 选择要调用login这个servlet,选择http的post方法 --> 用户名:<input type="text" name="username" /><br> <br> 密码:<input type="password" name="password" /><br> <br> <input type="submit" value="login" /> </form> </body> </html>
前面几行是一些定义,系统自动生成。
功能:将用户输入的用户名存为username,输入的密码存为password,按钮功能为将表单数据传给action(前面指定为login),名字(按钮上的文字)为“login”
这段代码中用到html的三种输入类型:
输入类型:text input type=”text”定义供文本输入的单行输入字段
<form> First name:<br> <input type="text" name="firstname"> <br> Last name:<br> <input type="text" name="lastname"> </form>
输入类型:password input type=”password” 定义密码字段: 注释:password
字段中的字符会被做掩码处理(显示为星号或实心圆)。
<form> User name:<br> <input type="text" name="username"> <br> User password:<br> <input type="password" name="psw"> </form>
输入类型:submit input type=”submit”定义提交表单数据至表单处理程序的按钮。
表单处理程序(form-handler)通常是包含处理输入数据的脚本的服务器页面。 在表单的 action
属性中规定表单处理程序(form-handler)
<form action="action_page.php"> First name:<br> <input type="text" name="firstname" value="Mickey"> <br> Last name:<br> <input type="text" name="lastname" value="Mouse"> <br><br> <input type="submit" value="Submit"> </form>
4.写部署描述文件(deployment descriptor,DD)web.xml,放在WEB-INF文件夹:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <!-- 为servlet(servlet.LoginController)制定 一个在当前web.xml中唯一标记的别名LogicController --> <servlet> <servlet-name>LoginController</servlet-name> <servlet-class>servlet.LoginController</servlet-class> </servlet> <!-- 将这个别名代表的servlet,映射到公共url名(请求这个url,就调用相应servlet) --> <servlet-mapping> <servlet-name>LoginController</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app>
注释解释得很清楚了,开头几句是格式,照搬就行。
5.写控制器servlet。在Java Resourse文件夹创建package,命名servlet,在包中创建LoginController类:
package servlet; 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 bean.UserBean; public class LoginController extends HttpServlet { private static final long serialVersionUID = 1L; public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName = request.getParameter("username"); String passWord = request.getParameter("password"); UserBean userBean = new UserBean(userName, passWord); if (userBean.CheckUser()) { RequestDispatcher rd = request.getRequestDispatcher("login_success.jsp"); rd.forward(request, response); } else { RequestDispatcher rd = request.getRequestDispatcher("login_fail.jsp"); rd.forward(request, response); } } }
功能:接受http请求,并转发至其他页面
service()方法,继承自HttpServlet,自动调用doGet()或doPost()。
java.lang.String getParameter(java.lang.String name)用于获取表单信息,返回为String形式。name为html或jsp页面中各种标签的name属性,此处getParameter(“username”)和getParameter(“password”)返回的就是login.jsp页面中用户输入的用户名和密码。
之后将请求分发至模型UserBean,完成登陆业务处理。用这组用户信息创建一个用户类UserBean,调用类方法CheckUser(),若check通过则调用RequestDispatcher getRequestDispatcher(java.lang.String path),path指定了分发的资源路径,RequestDispatcher封装了这个资源。此处用request.getRequestDispatcher(“login_success.jsp”);分发至登陆成功界面。用
request.getRequestDispatcher(“login_fail.jsp”);分发至登陆失败界面。
6.写用户类,和上一步一样,创建bean package,在bean包中创建UserBean类:
package bean; public class UserBean { private static final String NAME = "hello"; private static final String PASSWORD = "j2ee"; private String name; private String password; public UserBean(String name, String password) { this.name = name; this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean CheckUser() { if (name.equals(NAME) && password.equals(PASSWORD)) { return true; } return false; } }
7.写登陆成功,登陆失败界面,放在webcontent
<%@ 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> <p>登录成功!</p> </body> </html>
<%@ 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> <p>登录失败!</p> </body> </html>
8.右键run on server,然后在浏览器输入http://localhost:8080/SimpleController/login.jsp即可看到
9.打包
File—-Export—-选择Web下的WAR file,一路默认即可
10.运行
将生成的SimpleController放到tomcat的webapps目录下,在终端中启动tomcat,访问http://localhost:8080/SimpleController/login.jsp即可看到同样结果
相关文章推荐
- 【MVC】使用Servlet 作为控制器实现一个简单的登陆验证
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- 简单OCR实现原理 (www.team509.com)
- MVC程序的简单实现
- PHP实现MVC开发得最简单的方法——单点入口
- 简单的单入口MVC的实现
- 加壳原理与简单实现加壳(delphi源码)
- [导入]Asp实现简单MVC(一)
- 加壳原理与简单实现加壳(delphi源代码)
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )
- 【JfaceTextFramework学习笔记之四】TextViewer实现原理简单分析
- CString实现原理简单介绍
- PHP实现MVC开发得最简单的方法――模型
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- jsp文件上传原理简单实现
- 简单OCR实现原理 (www.team509.com)
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 一种简单的嵌入式字库设计及其实现原理
- 用MATLAB的GUI实现文本的简单加密原理