大家好,又见面了,我是你们的朋友全栈君。
web后端
一.cs/bs架构
-
CS/BS模式/客户端与浏览器模式
-
cs 需要安装客户端,客户端向服务器请求,服务器响应数据返回。
bs 浏览器即可访问通过http协议
3.web资源
静态资源:人们浏览到的网页是一样的
动态资源:不同人、时间可能都不一样
4.web服务器
将写好的web项目放入一个容器中,浏览器就通过这个容器来访问网页
二.Tomcat
1.TomCat安装与部署
1.1TomCat目录结构
-
bin:2进制可执行文件eg:开始和关闭startup shutdown
conf:配置文件,分为web.xml和server.xml
lib:运行需要的jar包
logs:日志文件
temp:临时文件
webapps(重要):存放web项目 每个文件夹就是一个项目
work:运行生成的文件
1.2启动
bin中的star.bat启动即可 但是可能会一闪而过,直接打开start.bat修改文件 加入下面代码再启动即可,不要手动去添加环境变量。
注意shutdown.bat也要加入一样的代码,不然会关闭失败。
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 set JRE_HOME=C:\Program Files\Java\jdk1.8.0_181\jre
1.3启动的乱码问题
进入conf中的logging-properties 编辑其中的logging -encodeing为GBK即可
1.4修改端口号
进入conf中的server.xml其中的port:8080改成其他的就可以了
2.部署项目
2.1创建项目:
在webapps中创建项目文件夹作为项目的名字eg myweb,然后把root中的web.xml文件复制到webapps中,然后在myweb下创建文件夹WEB-INF,再在阿webinf下创建文件夹classes和lib,网页文件和它的资源文件直接存在myweb下即可eg img文件等。
2.2访问资源 url http://localhost:8080/myweb/hello.html 协议 主机 端口号 资源文件
2.3响应流程
用户向tomcat请求 tomcat寻找资源给用户响应
四.serverlet
1.概念
server applet 服务端程序即代码功能的实现,交互式处理客户端发送到服务的的请求并作出响应。
接受请求->生成动态网页->返回数据
2.开发与集成serverlet到tomcat
2.1编写servlet
1):新建项目
2):点击添加框架添加web框架支持
3):在WEB-INF下新建lib作为放jar包的文件夹并且把servlet的jar包放进去
4):编写sevlet程序:在项目下新建包com.xx.xxx再新建class类继承servlet并实现那5个类(自动导入)
其中service可用于输出到控制台。
4):编写web.xml文件
需要加入以下类容:
<servlet> <servlet-name>my</servlet-name> <servlet-class>com.lyj.servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>my</servlet-name> <url-pattern>/servlet03</url-pattern> </servlet-mapping>
第一个名字随便取,但是映射即maping中的第一个名字必须和servlet 的第一个名字一样,servlet class即servlet程序的位置,把包和类写清楚即可。url-maping 输入网址中项目下的名字,设置什么后边访问网页时就输入什么。注意url-maping后边名字的设置有斜杠千万不能省略,不然会出错。
2.2搭建环境idea 自动部署 开发版
idea集成tomcat 热部署
右上角
1):点击编辑配置添加tomcat服务器
2):部署
选择默认确定即可
2.2打包成war包(发布版,项目已经完成,不再改动了)
1):Ctrl+Alt+shift+s打开项目结构,或者点击右上角设置图标中的第二个
2):点击工件Artrifact,然后点击webapplication archieve 即web应用归档版点击for哪个项目的名字->ok
3):点击构建项目build下的构建工件build Atrifact 然后在out文件夹下将发布版的.war文件复制出来放到tomcat的webapps下即可
4):访问。启动start.bat文件后服务器会自动生产发布版的文件夹,再在网页中像开发板一样访问相关资源即可
五.http简介
3次握手:第一次:客户端发送到服务端询问服务器是否能收到
第二次:服务端发送到客户端表示服务端能收到
第三次:客户端发送到服务端,表示服务端发的消息客户端也能收到
六.servlet详解
6.1genericServlet
作用:只需要写重写server类,不需要重写其他4个类,简化编程。(记得在web.xml中配置相关信息)
6.2servlet(与协议无关)与httpServlet 与协议有关
推荐使用httpServerlet 重写 doget dopost方法即可
6.3web.xml配置匹配获取资源规则(sevlet3.0之前)
6.3.1web.xml配置servlet的加载顺序<load-on-startup>写在servlet标签中 参数为整数0-正整数,越靠前执行优先级越高
6.4web.xml文件的配置(servlet3.0之后 推荐使用)
即直接在servlet程序中添加注解,不用到xml文件中去配置 ,常用就value配置访问路径, loadonstartup配置加载优先权。
@WebServlet(value = "/web",loadOnStartup = 0)//放在servlet程序上即可
七.serverlet应用
7.1 request接受get数据 getParameter 参数为标签的name
String name=req.getParameter("name"); String pwd=req.getParameter("pwd");
选择提交表单时 action的参数设置为项目的名字+serverlet value值即路径<form action=”/serverlet03_war_exploded/web02″ method=”get” class=”login”>
测试时先进入网页 url+xxx.html在提交数据
7.2request接受post数据
方式和get一样,只是会出现乱码问题
解决办法:
req.setCharacterEncoding(“UTF-8”);//解决乱码问题
7.3response
7.3.1服务端用于回应客户端注册成功
//2.响应数据给客户端 PrintWriter writer = resp.getWriter();//获取输出流 writer.println("注册成功!");
若返回中文数据则会出现乱码问题
乱码问题解决:加上代码如下且必须在获得字符流之前设置
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149392.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...