学习心得

Servlet执行原理:

1.当服务器接收到客户端,浏览器请求URL索取资源,创建解析请求URL路径URL解析出/servlet /add servlet 路径

2.查找@WebServlet("/servlet/AddServlet")有没有相对应URL映射?如果有就找到Addservlet这个类

3.Tomcat加载到servlet容器中,以字节码运行并创建对象调用doget dopost,生成应答结果

servlet是一个类(JVM)

心情

今天主要学习了jsp,这个相对于html来说有一点老,都是语法问题,容易出面试题比如说

1、JSP脚本片段中只能出现java代码,不能出现HTML元素。在访问JSP时,JSP引擎翻译JSP页面中的脚本片段。

2、JSP脚本片段中的java代码必须严格遵守java的规则

3、一个JSP页面是可以有多个脚本片段

4、多个脚本片段中的代码可以相互访问

掌握情况:理解不了就背吧

学习总结

面试题:JSP和servlet的区别?

1、JSP本质上就是一个servlet

2、JSP更侧重于视图展示,servlet更侧重于逻辑处理

3、先有的servlet,后有的JSP

// 向页面打印输出
out.print(num);
<%--JSP表达式--%>
<%= num %>


<%--JSP声明片段--%>
<%!
    int x = 10;


    static{


    }


    public void fun(){

JSP的指令标识

<%@ 指令名 属性1="值1" 属性2="值2" .....%>

page指令:定义整个JSP页面的相关属性

include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。

taglib指令:引入页面上需要用到的标签库

JSP标签

1、内置标签

(1)jsp:include:引入指定的页面

(2)jsp:forward:转发页面

(3)jsp:param:传参数

2、JSTL标签,需要导入JSTL标签库

3、自定义标签

面试题:jsp:include标签和include指令的区别?

include标签:先把要引入的页面编译,再合并

include指令:先把要引入的页面合并,再编译

 

面试题:JSP作用域:四大作用域:

1、当前页(pageContext):一个属性只能在一个页面中获取。

2、一次请求(request):一个页面中设置的属性,范围是一次请求。

3、一次会话(session):一个会话中的属性,只要页面不关闭,都能获取到

4、整个web应用(application):在这个服务器上,当前项目下的任何一个位置都能获取。

 

面试题:JSP的九大内置对象。内置:不需要创建,直接就能用。

1、request ---------- 请求

2、response ---------- 响应

3、session*  ---------- 会话

4、out ----------  输出

5、page  ---------- 当前JSP页面对象

6、application  ---------- 应用

7、exception*  ---------- 异常,只能在指定了isErrorPage="true"

8、pageContext  ---------- 当前页,作用域

9、config  ---------- 配置

EL表达式的缺陷:1、只能读,不能写 2、不支持流程控制语句

作用域对象的使用规则:从小到大使用!

1.在JSP脚本片段中只能写java 2.在body中只能写html

练习

分页查询

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
    分页查询:
    1、总记录数
    2、总页数
    3、每页显示的记录数
    4、每页展示的数据集合
    5、导航栏的页码 【1,2,3,4,56、是否是第一页
    7、是否是最后一页
    8、当前页
 --%>


<h1><a href="${pageContext.request.contextPath}/page.do?pagenum=1">加载分页导航</a></h1>
当前页:【${requestScope.pagenum}】,总页数【${requestScope.pageCount}】
<hr>
<c:if test="${requestScope.pagenum ne 1}">
    <a href="${pageContext.request.contextPath}/page.do?pagenum=1">首页</a>
    <a href="${pageContext.request.contextPath}/page.do?pagenum=${requestScope.pagenum - 1}">上一页</a>
</c:if>
<c:if test="${requestScope.pagenum eq 1}">
    <span>首页</span>
    <span>上一页</span>
</c:if>
<c:forEach begin="1" end="${requestScope.pageCount}" var="i">
    <c:if test="${requestScope.pagenum eq i}">
        <span>${i}</span>
    </c:if>
    <c:if test="${requestScope.pagenum ne i}">
        <a href="${pageContext.request.contextPath}/page.do?pagenum=${i}">${i}</a>
    </c:if>
</c:forEach>
<c:if test="${requestScope.pagenum ne requestScope.pageCount}">
    <a href="${pageContext.request.contextPath}/page.do?pagenum=${requestScope.pagenum + 1}">下一页</a>
    <a href="${pageContext.request.contextPath}/page.do?pagenum=${requestScope.pageCount}">尾页</a>
</c:if>
</body>
</html>

 

posted on 2022-08-31 22:06  骐琳  阅读(12)  评论(0编辑  收藏  举报

你点我就回上面去了ヾ(≧O≦)〃嗷~