发表于: 2020-05-28 21:43:27

1 1471


今天完成的事情:

简单学习JSP基础:

JSP(Java Server Pages)是由Sun公司倡导、许多公司参与一起建立的一种新的动态网页技术标准。在HTML文件中,以特定的规则,加入Java程序代码,就够成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的Java程序代码,然后将执行结果以HTML形式返回给客户端。Java代码的解析在服务器端(也称为后端),客户端(也称为前段)只用于显示。


在着手开发动态Web之前,首先需要有一个web容器,支持JSP的Web容器有很多,比如Tomcat,WebLogic,WebSphere。一般Tomcat比较常用。


Tomcat安装很简单,在官网下载好之后解压就行了、之后只需要在idea里面加载就行了。


Tomcat执行流程

当用户向浏览器发出一个请求时,也就是在浏览器的地址栏中进入某一个连接,或者单击某一个连接时,服务器会根据这个链接找到对应的JSP文件,并由这个JSP生成一个Java文件,然后将Java文件编译成Class文件,再执行这个Class文件,最后再将执行后的结果返回给用户。


JSP基础语法

JSP文件中可以使用两类不同的注释形式:

显式注释:<!-- 注释内容 -->,在显式注释中,注释部分可以使用表达式,因为显式注释会被JSP引擎解释。

隐式注释:<%// 注释内容 %>和<%/* 注释内容 */%>


JSP的本质就是在HTML代码中插入Java代码,为了区分Java代码和HTML代码,需要使用一些特殊的标记来标记Java代码段。在JSP中,大部分都是由脚本小程序组成,所谓的脚本小程序,就是里面直接包含了Java代码。


Scriptlet(代码段)就是用来标记Java代码的标志(这里Script就是脚本的意思,而let作为后缀,表示“小的”)。服务器在解析JSP文件时会识别Scriptlet,并在Java代码段生成一个Java文件。JSP中有3种常用的Scriptlet标记:

1,<% %>

这种Scriptlet主要功能是定义局部变量和程序语句。我们可以在这个标记中写入要执行的Java代码,由于JSP最终都要转换为Java程序文件,而在Java文件里面只有方法可以定义局部变量。而所有的程序语句也只能够出现在方法之中。

2,<%=%>

此类Scriptlet可以简单的理解为表达式输出,他可以输出变量,常量,方法的返回值,并将变量的值输出并生成到HTML文件中,相当于替代了out.println()。

3,<%!%>

定义全局变量,可以编写类,方法。一般情况下都会使用此Scriptlet定义一个全局变量,全局变量是无论怎么刷新,都只声明一次,只有很少的情况下才会用此语句去定义一个方法。


Page指令

1,pageEncoding:指定编码

2,contentType:指定.jsp文件生成的文件的内容类型及其编码方式

3,import:导入相关的包

4,language:设置解释该JSP时采用的语言

5,session:指定JSP页面是否使用HTTP的session会话对象。


包含指令:

在很多项目开发中,往往会出现一个页面有多个模块,一个模块被多个页面使用的情况。比如在一个项目中可能有多个页面有相同的头部信息,工具栏和尾部信息,但是每个页面的具体内容的展示方式不同。面对这种情况,有两种解决方案。

方案一:把每一个页面的头部信息,尾部信息,工具栏和具体内容的代码都写入到一个文件中。

方案二:将头部信息,尾部信息,工具栏单独定义到一个独立的文件中,在需要头部信息,尾部信息,工具栏的代码的页面中导入这个独立的文件。

第一种方案的缺陷十分明显。如果要修改头部信息,尾部信息,工具栏的代码,就要修改每一个页面的代码,如果这样的页面非常多,就会很麻烦。而方案二中,由于头部信息,尾部信息,工具栏都单独定义在一个独立的文件之中,在修改的时候只需要修改头部信息,尾部信息,工具栏对应的独立文件就可以了。

而使用方案二需要导入的命令完成,导入有两种方式:静态导入,动态导入。

1,静态导入

<%@include file="路径"%>


2,动态导入

针对普通静态页面(文本文件,htm,jsp文件等),不需要传递参数

<jsp:include page="">


针对动态页面(JSP),要向被导入的jsp文件传递参数

<jsp:include page="">
<jsp:param name="" value=""/>
</jsp:include>

其中jsp:param中就是要传递的参数,在被导入的页面使用request.getParameter()来接收传递的参数内容。


跳转指令

jsp中可以由一个页面自动跳转到另外一个页面,这就是跳转指令。使用的语法是:

<jsp:forward page="WEB-INF/views/include_param.jsp">
<jsp:param name="" value=""/>
<jsp:param name="" value=""/>
</jsp:forward>


可以看到地址栏是主页,但是跳转到另外的页面了。


内置对象

内置对象又叫隐含对象,即不需要预先声明就可以在脚本代码和表达式中随意使用的对象。共有9个:

1,request

2,reponse

3,session

4,application

5,pageContext

6,config

7,out

8,exception

9,page

 

Servlet

使用传统的JSP直接进行开发,的确可以完成程序功能,但是其最终的结果是,java代码与HTML完全混合在一起,这种高耦合,是的程序的逻辑结构不甚清晰,这对后期的程序维护是非常不便的。所以,从现实的开发来讲,既然是java代码,建议写在java程序中,而非Scriptlet中。这时就会用到Servlet开发技术。


学习SpringMVC

SpringMVC的工作流程:

1,用户发送请求,

2,请求交由核心控制器(web.xml)处理

3,核心控制器找到映射器,映射器看看请求路径是什么

4,核心控制器再找到适配器,看看有哪些类实现了Controller接口或者对应的bean对象

5,将带过来的数据进行转换,格式化等等操作

6,找到我们的控制器Action,处理完业务之后返回一个ModelAndView对象

7,最后通过视图解析器来对ModelAndView进行解析

8,跳转到对应的JSP/html页面


问题:今天又在SpringMVC这里卡住了


明天计划的事情:

弄清楚SpringMVC


返回列表 返回列表
评论

    分享到