做刷网站流量犯法吗,南京有名的网站建设公司,海南微信网站制作平台,有个网站可以接单做设计的一、MVC的概念
MVC是Model、View、Controller的缩写#xff0c;分别代表 Web 应用程序中的3种职责1 模型:用于存储数据以及处理用户请求的业务逻辑。 2视图:向控制器提交数据#xff0c;显示模型中的数据。 3控制器:根据视图提出的请求#xff0c;判断将请求和数据交给哪个…一、MVC的概念
MVC是Model、View、Controller的缩写分别代表 Web 应用程序中的3种职责1 模型:用于存储数据以及处理用户请求的业务逻辑。 2视图:向控制器提交数据显示模型中的数据。 3控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理处理后的有关结果交给哪个视图更新显示。
二、基于servlet的MVC模式 基于Servlet的MVC模式的具体实现如下。 1.模型:
一个或多个JavaBean 对象用于存储数据(实体模型由JavaBean类创建和处理业务逻辑(业务模型由一般的 Java 类创建)。 2视图:
一个或多个JSP页面向控制器提交数据和为模型提供数据显示JSP页面主要使用HTML标记和JavaBean 标记来显示数据。 3控制器:
一个或多个 Servlet 对象根据视图提交的请求进行控制即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中输出给视图显示。基于Servlet的MVC模式的具体实现如下。 模型:一个或多个JavaBean 对象用于存储数据(实体模型由JavaBean类创建和处理业务逻辑(业务模型由一般的 Java 类创建)。 2视图:一个或多个JSP页面向控制器提交数据和为模型提供数据显示JSP页面主要使用HTML标记和JavaBean 标记来显示数据。 3控制器:个或多个 Servlet 对象根据视图提交的请求进行控制即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中输出给视图显示 三、代码 1.大致框架 2. jsp页面-loginCheck % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8%
!DOCTYPE html
html
head
meta charsetUTF-8
titleInsert title here/title
/head
body
form action loginCheckServlet method post
tabletrtd用户名/td tdinput type text name name//td/trtrtd密 码/tdtdinput type password namepwd//td/trtrtdinput typesubmit value 提交//td tdinput typereset value 重置//td /tr
/table
/form/body
/html
3.jsp页面-loginSuccess % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8%
!DOCTYPE html
html
head
meta charsetUTF-8
titleloginSuccess.jsp/title
/head
body
jsp:useBean iduser typedto.User scoperequest/
恭喜jsp:getProperty propertyname nameuser/登录成功
!-- 用来获取user对象的name,显示在页面上恭喜[用户名]登录成功 --
/body
/html !-- 这段JSP代码的作用是显示用户登录成功的消息并使用了JavaBeandto.User来存储用户信息 -- !-- 用jsp:useBean标签实例化一个名为user的对象类型为dto.User,如果该不存在会创建一个新的实例如果存在回复用之前的 -- 4. 实体模型user package dto;/*定义实体模型来表示数据*/public class User {private String name;private String pwd;public String getName() {return name;}public void setName(String name) {this.namename;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwdpwd;}
}5. 业务模型 package service;import dto.User;/*定义业务模型来处理业务,检查用户名和密码是否正确*/public class UserCheck {public boolean validate(User user) {if(user!null user.getName().equals(JSPMVC)) {if(user.getPwd().equals(MVC)) {return true;}return false;}return false;}
}4. 控制层
package servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dto.User;
import service.UserCheck;/*控制器一个或多个Servlet对象根据视图提交的请求进行控制* 即将请求转发给 处理业务逻辑的JavaBean* 并将结果存放到实体模型JavaBean中* 处理后的结果交给视图显示*/
/*表单提交中servlet的配置方法*/
WebServlet(nameloginCheckServlet,urlPatterns(/loginCheckServlet))public class loginCheckServlet extends HttpServlet{private static final long serialVersionUID 1L;/* 序列化ID相当于身份认证主要用于程序的版本控制* 保持不同版本的兼容性在程序版本升级时避免程序* 报出版本不一致的错误 */protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{doPost(request,response);/*因为这个是控制器是将视图层转发给业务层处理后又转给视图层* 所以我们需要两个层之间进行通信HTTP就是用于传输超文本数据的应用层协议* 有两个方法处理HTTP请求doGet和doPost* 对应HTTP GET请求 和HTTP POST请求* GET用于获取数据 POST用于提交数据*/}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{/*传进来两个参数HttpServletRequest用于获取客户端的数据* HttpServletResponse用于浏览器给客户端的响应*/request.setCharacterEncoding(utf-8);/*设置响应内容类型*/String name request.getParameter(name);//获取HTTP请求的参数的值String pwd request.getParameter(pwd);User user new User();//实例化一个对象用对象调用其属性或方法user.setName(name);//数据存储在模型user中user.setPwd(pwd);UserCheck uc new UserCheck();//实例化业务模型userCheckif(uc.validate(user)) {//validate方法传进来一个user,返回boolean类型看登录凭据是否有效request.setAttribute(user, user);/*setAttribute用于向请求对象中添加属性void setAttribute(String name, Object value)name参数是要设置的属性的名称。value参数是要设置的属性的值可以是任何Java对象在后续的请求处理中可以通过请求对象访问这个属性从而获取和使用用户对象的相关信息使用EL表达式${user}来获取这个用户对象通过${user.username}可以获取并显示用户的用户名*/RequestDispatcher dis request.getRequestDispatcher(loginSuccess.jsp);//将请求转发到名为loginSuccess.jsp的JSP页面dis.forward(request, response);//执行请求转发} else {response.sendRedirect(loginCheck.jsp);//发送一个重定向}}
}