0
点赞
收藏
分享

微信扫一扫

javaweb学习笔记3(tomcat安装,idea建立一个web工程,servlet常见方法和工具类)

荷一居茶生活 2022-01-28 阅读 39

javaweb学习笔记3

javaweb概念

javaweb指所有通过java语言编写的通过浏览器访问的程序的综合
javaweb是基于请求和响应来开发
请求:
是指客户端个服务器发送数据,request
响应:服务器给客户端回传数据为response
web资源的分类

按实现技术和呈现的效果不同分为静态和动态
html,css,js,txt,jpg。。。属于静态资源
jsp页面,servlet

tomcat

下载tomcat安装包
下载地址
配置环境变量
启动tomcat
找到tomcat下的bin的startup.bat双击启动或者cmd输startup.bat 或者catakina run
停止tomcat
找到tomcat下的bin下的shutdown.bat

修改端口号

找到conf目录下的server.xml
在这里插入图片描述
修改port属性1-65535

如何部署web工程到tomcat上

1.将工程目录拷贝到webapps目录下
2.找到tomcat文件夹下的conf\Catalina\localhost创建配置xml文件指定目录和为工程目录

<Context path="xml文件的名字" docBase=“工程目录”>

3.https//:ip:port访问root的欢迎界面
优先访问index.html文件
整合tomcat到idea
在这里插入图片描述
在这里插入图片描述
创建一个web工程在工程点击右键选择add 选择javaweb即可创建一个Javaweb工程

servlet

1.servlet是javaee的规范之一,接口
2.是javaweb三大组件之一 servlet程序,filter过滤器,listener监听器
3.servlet是运行在服务器上的java小程序,他可以接收客户端发送的请求,并响应数据给客户端

创建一个servlet程序

编写一个类实现servlet接口实现service方法处理请求响应数据,web.xml中配置访问地址
1.创建一个实现servlet接口的类,重写service方法

package test;

import jakarta.servlet.*;

import java.io.IOException;

public class Servlettest implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
//处理请求和响应的方法
        System.out.println("bei1fan");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

2.修改xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
<!--    servlet给tomcat配置servlet程序-->
    <servlet>
        <servlet-name>Servlettest</servlet-name>
<!--        全类名-->
        <servlet-class>test.Servlettest</servlet-class>
    </servlet>
<!--    给servlet配置访问地址-->
    <servlet-mapping>
        <servlet-name>Servlettest</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

sevrlet的生命周期

1.执行servlet构造器
2.执行init初始化
3.执行service方法(每次访问执行)
4.执行destroy方法销毁(停止时执行)

get,post分发

方式1

 HttpServletRequest httpServletRequest= (HttpServletRequest) servletRequest;
        String method = httpServletRequest.getMethod();//获取请求方式get,post

方式2继承Httpservlet,重写doget,dopost方法

public class Servlettest2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

或者直接创建servlet文件

servlet类的继承体系

自定义servlet程序继承httpservlet类,httpservlet类继承genericservlet类。genericservlet实现servlet接口

servlet负责定义访问规范
genericservlet实现空实现
httpservlet实现了请求的分发处理

servletConfig类的三大作用

1.获取servlet程序的别名servlet name的值
2.回去初始化参数
3.获取servletcontext对象

重写init方法需要调用父类的init方法对config对象进行保存

servletcontext对象

1.servletcontext是一个接口,他表示servlet上下文关系
2、一个web工程只能有一个servletcontext对象实例
3.servletcontext对象是一个域对象(可以象map一样存取数据的对象)

存数据:setattribute()
取数据:getattribute()
删除数据:removeattribute()

servletcontext对象的作用
1.获取web.xml配置的上下文参数
2.获取当前工程的路径
3.获取工程部署后再服务器硬盘上存储数据的绝对路径
4.像map一样存取数据

http协议格式

客户端发给服务器的数据叫做请求
1.get请求
请求行:请求方式和请求资源路径,请求的协议和版本号
请求头:key:value组成
2. post请求
1.请求行
2.请求头
空行
3.请求体 发送给服务器的数据

常见的请求头

accept:告诉服务器可以接收的数据类型

accpet—language 可以接收的语言类型
user-agent:就是浏览器的信息
accpet—encoding:表示告诉服务器可以接受的数据编码格式
host:表示请求的服务器ip和端口号
connection:告诉服务器当前连接如何处理
keep alive 回传完数据不要马上关闭
closed 马上关闭释放资源
referer 表示请求发起时,浏览器地址栏中的地址
content-tepy 表示发送的数据的类型
appliction/x-www-from-urlenconcoed
multipart/from-data 表示以多段的形式提交数据给服务器
content-length:表示所发送的数据的长度
cache-control:表示如何控制缓存

响应的http协议格式

1.响应行
响应的协议和版本号,响应码和响应状态描述
2.响应头
空行
3.响应体:回传的数据

常见的响应头

server:表示服务器信息
content-type 表示响应体的数据类型
content-langth响应体的长度
date:请求响应的时间

常见的响应码

200:表示请求成功
302:表示请求重定向
404:表示请求已经收到,但是所请求的数据不存在
500:表示服务器内部出现错误

HttpServletrRequest类

每次有请求进入tomcat服务器。tomcat服务器就会把请求过来的http协议信息解析好封装到requst对象中,然后传递到service方法中给我们使用,我们通过httpservletrequest对象获取所有请求信息

HttpServletRequest类的常用方法

1.getrequestURI() 获取请求的资源路径
2.getRequestURL()获取绝对路径
3.getRemoteHost()获取客户端的ip地址
4.getHeader()获取请求头
5.getParameter()获取请求的参数
6.getParameterValues()获取请求的参数多个值使用
7.getMethod()获取get、post
8.setAttribute(key,value)设置域数据
9.getAttribute(key)获取域数据
10.getRequestDispatcher()获取请求转发对象

base标签的作用

base标签设置页面的相对路径的参照的地址
<base href="">

HttpServletResponse类

包含响应的对象,可以进行设置
1.输出流
字节流:getOutputStrieam()
字符流:getWriter()

请求重定向

当服务器不断地更新可能某个地址或者respones接口被其他接口取代,是需要将访问之前地址的请求重定向给新的地址
此图片为b站尚硅谷javaweb视频课程内容
代码实现


public class Response1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("到此一游");
        resp.setStatus(302);//设置状态码302表示需要重定向
        resp.setHeader("location","http://localhost:8091//javaweb3_war_exploded/R2");//设置响应头
    }
}

public class Response2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("response2's ");
    }
}

方法2

public class Response1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.sendRedirect("http://localhost:8091//javaweb3_war_exploded/R2");
    }
}
举报

相关推荐

0 条评论