当前位置:首页 » 《关于电脑》 » 正文

Java Web

12 人参与  2024年11月04日 18:40  分类 : 《关于电脑》  评论

点击全文阅读



1、HTTP

1.1 HTTP简介


http若有记忆,每次请求都要包含前面请求的内容,之后的请求包会越来越大,效率低!

1.2 请求数据格式

HTTP协议中有7中不同的请求方式:

1.3 响应数据格式

状态码:



2、Tomcat


封装Http协议,服务器收到请求,会自动解析HTTP协议,不用我们琢磨了。


2.1 简介


2.2 安装 配置 部署项目

我的Tomcat位置:
C:\Users\86175\eclipse-workspace\Servers\Tomcat v10.0 Server at localhost-config

2.3 IDEA中创建Maven Web项目

项目结构:

创建方法一:使用骨架:

pom.xml:

创建方法二:不使用骨架:

4、IDEA使用Tomcat(两种)

传统使用方法,将web项目打包成war包,然后找到war包,将其放在Tomcat下的webapps目录下即可,但不方便,所以学习在IDEA中直接使用Tomcat。


这些配置都可以改(默认浏览器,默认打开的URL路径,因为这里部署的是tomcat_demo2_war这个项目,所以自动生成这个URL,在部署时可以改,一般不动):


默认端口号8080,访问路径就是对应的项目名字。

3、Servlet


3.1 快速入门


注意划横线的一行,之前在学习导入mysql的jar包时学过(maven时),说的是这个依赖包的作用范围(编译,运行,测试三种范围)provided的范围是编译和测试环境中有效,运行时无效。这里必须是provided,因为Tomcat中自带了servlet的jar包,所以对于web项目在打包时要把这个包排除掉,否则会冲突。

创建类:复写需要实现的5个函数(常用前三个),加上注解,service函数启动时会自动调用。

3.2 执行流程

3.3 生命周期

初始化:

service:

destroy:强制停止不会调用

3.4 体系结构


思考:

因为HTTP有七种请求方式,调用servlet方法时是需要获取请求时的一些参数的,请求方法不同参数位置不同,如get post,所以每次执行servlet都需要判断一下什么请求方法然后针对不同的方法进行不同的处理,十分繁琐,所以就定义了一个继承servlet的子类HttpServlet,在实现servlet函数时处理了不同的请求做了不同的处理,如get请求就使用doGet方法:

所以后续我们就可以直接继承HttpServlet类,重写doGet和doPost方法就好,在里面写处理逻辑(执行时,自动执行的是父类的servlet函数,判断什么请求后就会自动调用doGet或doPost方法)

直接在浏览器中访问demo4是get方法
使用HTML提交是post方法

浏览器先访问html文件:点提交又会访问demo4,但是是post提交方式。

总结:

3.5 urlPattern配置



注意:
扩展名匹配,不能以 / 开头;

3.6 XML配置方式编写Servlet

web.xml中配置:

4、Request Response


4.1 Request 继承体系

4.2 Request 获取请求数据

4.2.1 获取请求数据

虚拟目录是可以改动的:默认就是当前项目

ex:

输出:

获取请求体例子:
先写个html表单,post提交:
输出:

4.2.2 通用方式获取请求参数

问题:

解决方法:tomcat又给出了更方便的方法获取参数

使用这三种方法无论是get提交的还是post提交的信息都能获取到,这下doget和dopost函数内容一样了,可以直接在dopost中写一句话就行:


ex:
改一下html表单:



输出:

4.2.3 IDEA模板创建servlet

直接使用一个模板来写源码。

4.2.4 请求参数中文乱码

        正确情况下,浏览器对数据进行了URL编码,其中编码方式是UTF-8,而在获取数据时,POST方式使用获取输入流的方法获取的,默认是使用ISO-8859-1的方式解码,所以乱码,那么对于POST方法直接在获取数据前设置一下输入流编码即可。
        然后get方法,是直接读取字符串的方式,解码方式在Tomcat内部写死了,如上图URL解码使用的是ISO-8859-1,所以乱码,可以对解出来的乱码再次编码成字节数组,然后使用UTF-8解码就好了,这种方式也适用于post提交方式。

4.3 Request 请求转发

4.4 Response 


4.5 Response 设置响应数据功能介绍

4.6 Response 完成重定向

注意这里要写上虚拟目录,这个目录在配置文件中是可以修改的,所以最好是是用一种动态的方法获取这个目录,以后该配置文件了,不用动这些功能性源代码。

路径问题:

4.7 Response 响应数据

4.7.1 响应字符数据


若响应的不是文本而是html,需要浏览器解析一下,那么要在响应头中设置一下响应的类型为html,告诉浏览器需要解析,否则会按照文本输出:content-type设为text/html;
中文乱码,该编码方式,可以与上面设置响应类型合为一体来设置:

4.7.2 响应字节数据

如一张图片。


使用一个工具来简化copy那一步:

4.8 案例...

4.9 SqlSessionFectory工具类抽取...

5、JSP

有JSP的原因!

5.1 快速入门

5.2 JSP原理


可以查看项目对应的target目录下......有对应的.class和.java文件,可以查看Java文件:


其实HttpJspBase这个类就是继承HttpServlet(可查一下)。
可以看出Tomcat自动将jsp文件转换成了我们原来写的Java文件,在servlet中用输出流write方法拼写html文件(麻烦),其实就是Tomcat把我们这个麻烦的过程又封装了,所以我们用jsp就好咯。

5.3 JSP脚本

使用一个例子来学习:



运行这个jsp,得到:

可以看jsp对应的Java文件进行理解:

可以发现还是好麻烦啊!!!!!!


所以进入到第三阶段:servlet+jsp

5.4 EL表达式

JSP还是要获取数据,遍历展现,这还是Java代码,所以进入了“ EL表达式 和 JSTL标签 ”来简化这写代码。

如:servlet处理完逻辑后将响应内容写入域对象中,转发给jsp:

jsp使用EL表达式获取:

5.5 JSTL标签

<c:if>常与EL一起使用:

<c:forEach>

其实他还有一个参数:varStatus,它的值随便写,主要用里面的index和count,像表的主键一样,页面中表的序号一列可自动从0开始(status.index)或者从1开始(status.count)。

5.6 MVC模式和三层架构

javabean 也叫 pojo 也叫 domain 也叫 entity,我记得JAVABEAN就是一个封装好规范的类


之后学的三大框架其实就是对三层架构中的每层进行的封装,Spring其实也有一些表现层和数据访问层,所以另外俩个其实就是Spring下面的一个子项目。

5.7 综合案例!!!

1、


6、会话跟踪技术


6.1 Cookie基本使用


ex:

6.2 Cookie原理

ex:

6.3 Cookie使用细节


获取时:

6.4 Session基本使用

6.5 Session原理

6.6 Session使用细节


但要注意若是客户端关闭,再次访问可就不是一个session咯。

①session-config是在web项目的配置文件中哦:

②钝化活化过程可通过看这个写了session的文件来观看,关服务器自动生成,重新打开时这个文件就消失咯:

③正常重启关闭服务器需要在idea下面的命令行:
    对应项目目录下使用下面语句启动服务器:
   Ctrl+c关闭

6.7 cookie vs session

6.8 登录注册案例...

7、过滤器 监听器


web三大组件哦,所以代码写在Java代码结构中,可以创建一个包。

7.1 Filter 快速入门


注意这里的注解不是filter的使用路径了,是filter要拦截的资源的路径,“/*” 表示拦截所有。

7.2 Filter 执行流程


7.3 Filter 使用细节

2点:

7.4 filter案例...

7.5 Listener

使用:

ex:服务器一启动,就开始了

8、JSON...

9、AJAX Vue Element...


点击全文阅读


本文链接:http://zhangshiyu.com/post/182453.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1