栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVAWEB

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVAWEB

ping www.baidu.com 可以获取baidu的ip地址

URL ----- 地址栏输入的网址

JAVA_HOME = JDK的安装目录

path添加一个 %JAVA_HOME%bin

Tomcat配置环境变量

JAVA_HOME= JDK的根

CATALINA_HOME = TOMCAT的根

PATH 需要加上 %JAVA_HOME%bin 和 %CATALINA_HOME%bin

start.bat启动tomcat服务,目录介绍

 超链接和在地址栏输入url是一样的。

 

 

 

  CLASSPATH 需要添加上我们要引用的类的jar包

javac -d .   HelloServlet.java          

 

 

 

 向浏览器相应一段html代码

public void service(ServletRequest request,ServletResponse response){

response.setContentType("text/html");

PrintWriter pw = response.getWriter();

pw.println("你好");

}

使用IDEA开发Servlet

 

 

 WEB容器,底层是个HashMap集合

服务器启动

 

 总结:

第一次请求时,根据url查询servlet-name,根据servlet-name获取类名,从tomcat服务器的HashMap中查询到这个对象不存在,通过反射机制,调用servlet的无参构造方法,生成对象,将对象放入tomcat服务器的HashMap中保存起来,接着调用init方法,最后调用service方法,以后第二次,第三次再发送这个请求的时候,tomcat服务器根据url查询servlet-name,根据servlet-name获取类名,从tomcat服务器的HashMap中查询到这个对象已经存在了,直接从HashMap中拿出来这个对象来使用,调用service方法

构造方法只执行1次,init方法只执行1次,destroy方法只执行一次,service方法,发一次请求执行一次

 transient修饰的属性,游离的,不参与对象的序列化

SERVLETCONTEXT

一个tomcat是一个容器,一个容器可以放多个项目,每个项目有自己的servletContext,一个servletContext存放多个servlet,每个servlet有自己的servletConfig

 IDEA中配置的tomcat服务器的日志存放到哪里呢?

查看IDEA启动tomcat控制台中  CATALINA_HOME的目录即可。

SERVLETCONTEXT

 

 

 HTTP的请求协议   4部分

请求行   请求头  空白行   请求体

HTTP的响应协议   4部分

状态行  响应头 空白行  响应体

URI:统一资源标识符    /servlet05/index.html  ,代表网络中某个资源,通过URI不能定位到资源

URL:统一资源定位符   http://localhost:8080/servlet05/index.html,代表网络中某个资源,通过URL可以定位到该资源

URL包含URI

   这里需要加上/servlet05,这个webapp的目录

   这里的action是需要加上  /servlet05的

超链接和直接在地址栏输入url是一样的,都是get请求

get请求是支持缓存的

post请求不支持缓存,post是修改服务端的资源的

模板模式

设计一个抽象类,包含算法和算法中使用的方法,部分方法设置为抽象方法,等到子类来实现这些抽象方法,来确定不同的子类有不同的行为。

 

 HttpServlet  是模板模式

web.xml里面 的servlet是不带webapp的根目录的

欢迎页面

配置普通页面

 欢迎页面也可以设置为servlet,这个servelt不能以/开始,不需要带 contextPath

tomcat下的conf文件夹内的web.xml里面也配置了welcome-list,如果webapp内不配置welcome-list,则会以tomcat下的conf文件夹内的web.xml里面也配置的welcome-list为准,找不到则报错

配置servlet作为欢迎页

WEB-INF目录

 

 request和response的生命周期

这两个对象只在当前请求中有效,一次请求对应一个request,两次请求对应两个不同的request

request获取用户提交的数据 

前端提交的数据,后端接受到后,取出来的都是字符串,前端提交的是字符串,后端获取的也是字符串

servlet配置的时候不写项目名 /getUser,发送请求的时候需要带着项目名 /servlet01/getUser

request转发

req.getRequestDispatcher("/b").forward(req,resp);  //不需要带着项目名,直接写servlet的配置

response重定向的时候需要带着项目名

 

 tomcat9以及之前的版本,  request.setCharacterEncoding("UTF-8");解决post请求体乱码

response.setContexType("text/html;charSet=UTF-8"); 解决响应乱码

 从tomcat8之后,get方式默认就是UTF-8

 @注解名(属性名=属性值,属性名={属性值1,属性值2},属性名={@注解名(属性名=属性值,属性名=属性值),@注解名(属性名=属性值,属性名=属性值)})

注解开发servlet

 模板设计模式

一个url对应一个servlet,导致类太多,把多个url映射到同一个servlet,然后servlet重写service(HttpServletRequest,HttpServletResponse)方法,根据servletPath,判断需要调用哪个方法

@WebServlet(name = "aservlet",urlPatterns = {"/dept/list","/dept/save","/dept/edit"},loadonStartup = 1,
        initParams = {@WebInitParam(name = "username",value = "root"),
                @WebInitParam(name = "password",value = "1234")})
public class Aservlet extends HttpServlet {

public void service(HttpServletRequest request,HttpServletResponse response){

   if("/dept/save".equals(request.getServletPath()){

dosave(request,response);

}else if("/dept/list".equals(request.getServletPath()){

dolist(request,response);

}else if("/dept/edit".equals(request.getServletPath()){

doedit(request,response);

}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号