Servlet_JSP基础

1.JSP基础:        本质: 一个servlet        

        JSP三大指令:        指令语法:        <%@        指令名        属性名=属性值        %>

                page指令:        比如导包,嵌套页面等

<!-- 
    contentType:    设置类型和字符编码
    errorPage:    定义错误页面,出错时才会发生跳转
    isErrorPage:    值为true/false,表示当前页面是否为错误页面
    import:    导包
    language:    定义脚本语言,目前只有java
    pageEncoding:    设置字符编码
    isELIgnored:    值为true/false,表示是否忽略EL表达式
 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>

                taglib指令:

<!-- 导入扩展包,如JSTL标签库 -->
<%@ taglib %>

                include指令:

<!-- 
    该方法是静态包含/静态加载,相当于被包含页面的整个内容嵌入到包含页面中
    jsp解析引擎在解析时,会将两个页面解析成一个servlet文件,再经过java编译器 编译生成一个class文件
-->
<%@ include file="_04_include.jsp" %>


<!-- 
    该方法为 动态包含
    生成两个java和两个class文件,在包含页面中 动态的去把被包含的页面加载过来
		
    flush="true":必须要加,如果不设置成true,就会把被包含的页面生成一条html语句一次性的导入进来,如果数据缓存区过多,容易出现问题
-->
<jsp:include page="_04_include.jsp" flush="true"></jsp:include>

        脚本片段:        jsp中可以书写java代码,但是需要在脚本片段中书写Java代码

<!-- 脚本片段类似于类中的方法体,所有脚本片段最终会被合并为一个 -->
<%
    <!-- java代码块 -->
    System.out.println("----");
    out.println("我是servic方法");
%>

        脚本表达式:        功能类似于out.print(变量名)


<%  
    String str = "admin";
%>

<%=str    %>

        jsp声明:       在jsp声明中定义方法(类体)

	<%!
		int i;
		public void m1(){
		    System.out.println("=====");
		}
	%>

        注:        如需定义一个方法,就在jsp声明中定义,而调用方法或需要书写其他代码,就在脚本片段

 2.JSP中九大内置对象:

变量名真实类型作用
pageContextpageContext

当前页面的共享数据

还可以获取其他八个内置对象

requestHttpservletRequest一次请求访问的多个资源
sessionHttpSession一次会话的多个请求间
applicationServletContext所有用户间共享数据
responseHttpServletResponse响应对象
pageObject当前页面(servlet)的对象this
outJspWriter将数据输出到页面
configServletConfigServlet的配置对象
exceptionThowable异常对象

        out:        输出流,用来个客户端返回信息

<%
    out.print('a'); // 向客户端输出各种类型数据
    // out.flush(); // 先输出缓冲区数据再清空
%>

        request:

<!-- 
    getScheme(): 获取协议名称
    getServerName(): 获取服务器的名字
    getServerPort(): 获取服务器端的端口
    getContextPath(): 获取当前项目名 
-->
<%
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() +request.getContextPath()+"/";
%>

        response:

<%
   /* 
		addCookie():添加一个Cookie对象,用于在客户端保存特定信息
        sendRedirect():重定向到jsp文件
	*/
    response.addCookie("xxx");
%>

        session 和 application:

        Exception:        异常对象,如果有什么异常信息,页面可以使用exception直接获取

        config:        ServletConfig 配置对象

        page:        this,也是域,表示当前页面有效

3.jsp 与 servlet 之间的几种跳转方式:

        jsp 跳转到 jsp:

<!-- 第一种方式:    通过 js 实现 -->
<script type="text/javascript">
    window.location.href="跳转的jsp路径";
</script>

<!-- 第二种方式:    通过内置对象response重定向实现 -->
<%
    response.sendRedirect("跳转的jsp路径");
%>

<!-- 第三种方式:    通过jsp内置标签实现 -->
<jsp:forward page="跳转的jsp路径"></jsp:forward>

        jsp 跳 servlet:(同上)

        servlet 跳 jps:

// 转发:
request.getRequestDispatcher("跳转的jsp路径").forward(request,response);

// 重定向:
response.sendRedirect("跳转的jsp路径");

        servlet 跳 servlet:

request.getRequestDispatcher("跳转的servlet虚拟路径").forward(request,response);

4.base标签:        定位到的是服务器根目录

<%
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() +request.getContextPath()+"/";
%>

<head>
    <!-- base标签 -->
	<base href="<%=basePath %>">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>new jsp</title>
</head>

5.MVC 设计模式及三层架构:

        M:        Model,模型        ==>        JavaBean

                JavaBean:        实体类满足属性全部使用private修饰,每个属性提供一个get/set方法,并且有一个无参的构造方法

        V:        View,视图        ==>        JSP/html

        C:        Controller,控制器        ==>        Servlet

        数据访问层(dao):        完成具体的业务操作,如:查询数据库,封装对象

        业务层(Service):        调用dao层方法,校验数据等

        控制层(controller):        获取表单数据,跳转页面等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值