**Web网站框架分析**
客户端将请求数据交给服务器端,服务器端里的servlet首先接收数据,处理,然后将处理结果交给service,service再将数据处理后交给dao,dao将数据在数据库里进行检查,然后将结果返回给service,service将结果返回给servlet,然后servlet再将结果返回给服务器端,值得注意的是:servlet,service,dao三部分都是在服务器端才有的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191128081030476.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTQwMzQ4,size_16,color_FFFFFF,t_70)
**网站模型:**
**Tomcat**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191128081255859.png)
它是一个开源项目软件,是Apache软件基金会的核心项目,专门用于运行Jjava Web程序的服务器。
客户端与服务器端响应过程
浅谈MVC模型
MVC(Model View Controller)即为客户端向服务器端请输数据的全部过程,通过servlet接受数据,将数据传递给service业务层,service对数据进行解析,然后将数据传递给dao层进行与数据库数据对比,得到结果。dao将结果返回给service业务层,service业务层又将数据返回给servlet响应对象,然后servlet将数据返回给客户层。
环境搭建
http:web协议
localhost:主机地址
8089:提供的服务器端口号----------------------------服务器上的软件(注意,不同的tomcat服务器端口号可能是不相同的,需要根据你本地安装的tomcat安装目录的conf里的server.xml目录里面查找)
tomcat需要集成到eclipse
运行在服务器上的java程序,能够处理请求,返回响应
运行在tomcatweb服务器
继承了HttpServlet
简单案例详解(注意此项目是在eclipse里的java web项目)
首先我们新建一个项目,然后导入我们提前写好的前端页面到
WebContent这一栏,然后建立必要的几个包----servlet,service,dao,domain(用来存放数据库相关信息)
登录界面情况:
数据库相关表创建:
首先来编写domain包的相关信息:
创建一个User类:
package domain;
public class User {
private int user_id;
private String user_name;
private String user_mail;
private String user_gender;
private String user_pwd;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_mail() {
return user_mail;
}
public void setUser_mail(String user_mail) {
this.user_mail = user_mail;
}
public String getUser_gender() {
return user_gender;
}
public void setUser_gender(String user_gender) {
this.user_gender = user_gender;
}
public String getUser_pwd() {
return user_pwd;
}
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
public User(int user_id, String user_name, String user_mail, String user_gender, String user_pwd) {
super();
this.user_id = user_id;
this.user_name = user_name;
this.user_mail = user_mail;
this.user_gender = user_gender;
this.user_pwd = user_pwd;
}
public User() {
super();
}
@Override
public String toString() {
return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_mail=" + user_mail + ", user_gender="
+ user_gender + ", user_pwd=" + user_pwd + "]";
}
}
然后编写dao包里的相关信息(由于存储的是数据库的相关信息,和一般数据操作相同,就不展示代码了)
然后就是servlet层,直接选中servlet包右键建一个servlet类(注意,系统会自动写好模块)
然后编写数据链接的代码,以及判断用户信息是否是数据库中存在的(若存在,则登录成功,反之,继续输入账号)
package servlet;
import java.io.IOException;
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 com.sun.corba.se.spi.activation.Repository;
import domain.User;
import service.UserService;
import service.impl.UserServiceImpl;
/**
* Servlet implementation class Servelet
*/
@WebServlet("/login.do")
public class Servelet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Servelet() {
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());
}
/**
* @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);
System.out.println("有人来访问了");
//得到页面输入
String name =request.getParameter("username");
String password = request.getParameter("password");
User user = new User();
user.setUser_name(name);
user.setUser_pwd(password);
//验证输入是否能够登陆
UserService service = new UserServiceImpl();
boolean flag = service.validateLogin(user);//定义接口的实现方法规范
//根据结果返回对应的页面
if(flag){
response.sendRedirect("sys/index.html");
}else{
response.sendRedirect("login.html");
}
}
}
验证:
输入账号aa ,密码123(数据库含有该信息)
由于账号密码输入正确就会进入后台管理页面。
如何账号密码输入错误,就会继续显示登录界面
返回结果:
(本人才接触web不久,后期继续完善)