预习博客5

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Servlet+MVC
  • 一、Servlet
    • 1,什么是Servlet
    • 2,Tomcat容器等级
    • 3,My First Servlet
    • 4,Servlet生命周期
    • 5,Servlet获取九大内置对象
    • 6,Servlet与表单
    • 7,Servlet路径跳转
  • 二、MVC
    • 1.浅学一下model1
    • 2,获取初始化参数
    • 3,MVC设计模式
    • 4,Model2简介
    • 5,浅谈三层架构(看CSDN博客所得)
      • 三层架构


Servlet+MVC

作为小菜的预习笔记~


一、Servlet

1,什么是Servlet

Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序

2,Tomcat容器等级

预习博客5_第1张图片

3,My First Servlet

step1:继承HttpServlet
step2:重写doGet()或者doPost()方法
step3:在web.xml中注册Servlet

//index.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>Insert title here</title>
</head>
<body>
	<h1>第一个Servlet小例子</h1>
	<hr>
	<a href="servlet/HelloServlet">Get方式请求HelloServlet</a>//超链接就是get类
</body>
</html>
//HelloServlet.java
package servlet;

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

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

//继承于HttpServlet

public class HelloServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("处理Get()请求");
		PrintWriter out=response.getWriter();
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		
	}
	

}

//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>ServletDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>HelloServlet</servlet-name>
  	<url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>
</web-app>

预习博客5_第2张图片

4,Servlet生命周期

在下列时刻Servlet容器装载Servlet:
1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的之间添加如下代码:1数字越小表示优先级越高
2,在Servlet容器启动后,客户首次向Servlet发送请求
3,Servlet类文件被更新后,重新装载Servlet

Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次

Servlet容器启动时自动装载某些Servlet:

<servlet>
...
<loadon-startup>1</loadon-startup>
<servlet>

5,Servlet获取九大内置对象

预习博客5_第3张图片

6,Servlet与表单

记录一下本小菜对视频的小菜感受
userinfo.jsp和reg.jsp
Users.java和RegServlet.java
web.xml
感觉自己对它们之间的关联还有点懵呢

7,Servlet路径跳转

绝对路径:放之四海而皆准的路径
相对路径:相对于当前资源的路径

<!-- /servlet/HelloServlet 第一个/表示服务器的根目录-->
<a hreaf="servlet/HelloServlet">访问HelloServlet!</a><br>//使用相对路径访问HelloServlet

<a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>//使用绝对路径访问HelloServlet,利用jsp定义的path变量(当前上下文的变量,项目的根目录)


<!--表单中action的URL地址写法,于超链接方式完全相同。-->

注意:web.xml–(url-pattern)–里面的路径也不要写错了,以/(表示的是项目的根目录)开头(若servlet前不加/,服务器启动的时候就报错)

//请求重定向方式跳转到test.jsp
response.sendReadirect("test.jsp");//不对
//使用request.getContextPath获得上下文对象
response.sendRequestDispather(request.getContextPath()+"/test.jsp");

//服务器内部跳转
request.getRequestDispatcher("test.jsp").forward(request,response);//也不对
//要在text.jsp前面加个斜线/(这里的斜线表示项目的根目录)或者加个../(点点表示回到上层目录)

二、MVC

1.浅学一下model1

Model1模型出现前,整个Web应用的情况:几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。
弊端:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性和可维护性非常差。
Javabean的出现可以使jsp页面中使用Javabean封装的数据或者调用Javabean的业务逻辑代码,这样大大提升了程序的可维护性。
预习博客5_第4张图片

JSP+Javabean的开发模式

2,获取初始化参数

在web.xml中配置Servlet时,可以配置一些初始化参数(.xml中)。而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数

<servlet>
  <init-param>
  	<param-name>username</param-name>
  	<param-value>admin</param-value>
  </init-param>
  <init-param>
  	<param-name>password</param-name>
  	<param-value>123456</param-value>
  </init-param>

</servlet>
public void init() throws ServletException{
	this.setUsername(this.getInitParameter("username"));
	this.setPassword(this.getInitParameter("password"));
}

3,MVC设计模式

MVC模式:MVC(Model,View,Controller),是软件开发过程中比较流行的设计思想。旨在分离模型,控制,视图。是一种分层思想的体现
通俗来讲,MVC的理念就是
把数据处理,数据展示(界面)和程序/用户的交互三者分离的一种编程模式
预习博客5_第5张图片

4,Model2简介

Java Web的Model2开发模型就是M(JavaBean) V(JSP) C(Servlet)思想的体现

预习博客5_第6张图片

5,浅谈三层架构(看CSDN博客所得)

视图Veiw:负责页面的显示,与用户的交互,包含各种表单(html/css/jsp/js)。用户交互:用户鼠标点击页面;填写页面中各种表单

模型Model:模型负责各个功能的实现(登录,增加,删除功能)。模型用JavaBean实现

控制器Controller:控制器负责将视图与模型一一对应起来。相当于一个模型分发器。所谓分发就是:①接收请求,并将该请求跳转(转发,重定向)到模型进行处理。②模型处理完毕后,再通过控制器,返回给视图中的请求处(Servlet)

三层架构


这里引用了一下原博客

三层架构分为:表现层(UI)(web层)、业务逻辑层(BLL)(service层)、数据访问层(DAL)(dao层) ,再加上实体类库(Model)

1.实体类库(Model),在Java中,往往将其称为Entity实体类。数据库中用于存放数据,而我们通常选择会用一个专门的类来抽象出数据表的结构,类的属性就一对一的对应这表的属性。

·一般来说,Model实体类库层需要被DAL层,BIL层和UI层引用。

2.数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作

·DAL就是根据业务需求,构造SQL语句,构造参数,调用帮助类,获取结果,DAL层被BIL层调用

3.业务逻辑层(BLL)

·BLL层好比是桥梁,将UI表示层与DAL数据访问层之间联系起来。所要负责的,就是处理涉及业务逻辑相关的问题,比如在调用访问数据库之前,先处理数据、判断数据。

BLL层只被UIL层引用
预习博客5_第7张图片
预习博客5_第8张图片

你可能感兴趣的:(服务器,java,java-ee)