servlet中servletContext的五大作用(一)

  1. 获取web的上下文路径
  2. 获取全局的参数
  3. 作为域对象使用
  4. 请求转发
  5. 读取web项目的资源文件

package day10.about_servletcontext.get_path;
/*** 首先区别:* 一个网站只有一个ServletContext对象* 而每一个Servlet都有一个ServletConfig对象* * 但是我们拿Context对象的话,其实是通过Config对象去* 拿的,因为每一个ServletConfig中都有一个ServletContext* 的成员变量;* * 其次因为ServletConfig是在ServletContext之前创建的;* 因为ServletContext是在启动的时候创建的* 而ServletConfig对象是在调用init方法之前创建的。	* 	java中获取ServletContext的常见方法1.在javax.servlet.Filter中直接获取 ServletContext context = config.getServletContext(); 2.在HttpServlet中直接获取 this.getServletContext() 3.在其他方法中,通过HttpRequest获得 request.getSession().getServletContext(); */
import java.io.IOException;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** 【context对象的作用—1】:获取web的上下文路径* 		getContextPath();* * * @author mzy**/
public class ContextDemo01 extends HttpServlet {private static final long serialVersionUID = -4556050230938613373L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");// 1.1:首先要获取到ServletContext对象/** 这种方法原则上没有错:* 		因为加载的顺序上是config在context之前* 		并且context必须通过config对象来获取,* 		但是java设计者为了简化我们的代码,* 		在源码中重新写了这部分;* * 		他将* this.getServletConfig().getServletContext();* 封装到了源码的 getServletContext()的方法中了;* 但是我们还是需要记得获取context对象必须要获得* config对象;* * 获得context对象,必须要通过config对象来获取;* * 以下只是代码的简化而已* */// ServletContext context = this.getServletConfig().getServletContext();ServletContext context = this.getServletContext();String path = context.getContextPath();System.out.println(path);/** 以上就是上下文路径:但是需要注意的是,当我们在eclipse或者myeclipse中修改* 项目名称的时候,我们修改了之后其实它的上下文路径是没有变的;* 比如我们原来项目叫做 myday09,修改为myday10之后,我们run这个项目下的文件* 最后跑出来的时候,可以看见项目名依旧是myday09,所以这个时候的context我们* 需要去tomcat中改文件夹名称,或者:右键项目Properties-->myeclipse-->web* -->context root 修改* * 当然新版本的myeclipse中没有这种问题,但是老版的myeclipse和eclipse中可能* 存在这种问题需要注意*/// String path = context.getContextPath(); 获取上下文路径的好处??// 主要表现在做请求重定向的时候response.sendRedirect("/MyFirstServlet/hello.html");// 作用可以让这个获取文件的路径更加的灵活response.sendRedirect(context.getContextPath() + "/hello.html");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");}}

转载于:https://www.cnblogs.com/mzywucai/p/11053521.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一下alibaba cloud boot 版本对应关系

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

hihocoder 1580 Matrix(北京icpc2017网络赛)

#1580 : Matrix时间限制:1000ms单点时限:1000ms内存限制:256MB描述Once upon a time, there was a little dog YK. One day, he went to an antique shop and was impressed by a beautiful picture. YK loved it very much.However, YK did not have money to buy it. He begg…

sentinel控制台无数据解决

本地开发sentinel控制台有数据显示, 部署至linux服务器后,无数据显示 可能出现的原因有如下可能: 1.linux系统时间 和 控制台所在的系统时间不一致导致 date看一下,解决系统时间问题 2.是端口防火墙问题 生产环境对防火墙端口…

Nacos版本升级1.1.3 >> 1.3.1 —>再升级至1.3.2

前段时间进行了版本升级,springboot ,springcloud ,spring cloud alibaba都进行了版本调整 当时nacos并未进行调整, 再测试项目运行过程中,nacos版本不匹配,导致抛出很多nacos的请求异常 并且nacos的1.1…

[BZOJ 5072]小A的树

Description 题库链接 给你 \(n\) 个节点的一棵树,点分黑白。 \(q\) 组询问,每次询问类似于“是否存在树中 \(x\) 个点的连通块恰有 \(y\) 个黑点”。 \(t\) 组数据。 \(1\leq t\leq 5,1\leq n\leq 5000,q\leq 10^5\) Solution 由于询问比较多&#xff0…

Druid的外网访问异常

本地启动访问无异常,部署至Linux服务器后无法访问 #合并多个DruidDataSource的监控数据use-global-data-source-stat: truestat-view-servlet:login-username: adminlogin-password: adminreset-enable: falseurl-pattern: /druid/*# 添加IP白名单allow: "&quo…

POI Excel解析

Maven 引入POI <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.13</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-…

Linux项目第一次访问非常慢,后来很快的异常

最近项目本地访问和测试服务器访问都没出现访问很慢的问题。 近期要上生产部署&#xff0c;所以对生产环境的组件及各服务进行了部署&#xff0c;部署完成后进行测试发现请求耗时异常 比如一个订单查询请求&#xff0c;第一次请求耗时5m 或者15s 而且很有规律&#xff0c;不多…

mysql order by按照汉字拼音进行排序

Mysql的处理办法是&#xff1a; SELECT * FROM user_info ORDER BY CONVERT(user_name USING GBK) ASC;

spring注解大全

【转载】https://www.cnblogs.com/zxf330301/articles/6559210.html spring component的作用 1、controller 控制器&#xff08;注入服务&#xff09; 2、service 服务&#xff08;注入dao&#xff09; 3、repository dao&#xff08;实现dao访问&#xff09; 4、component &am…

深度学习的常用框架

目 录 一、Caffe (源于Berkeley的主流CV工具包) 二、TensorFlow (Google的深度学习框架) 三、Torch (Facebook用的卷积神经网络工具包) 四、Theano 五、Keras 六、MXNet 七、其他深度学习框架 八、其他知识拓展认识 前言&#xff1a;深度学习框架是帮助使用者进行深度学习的工…

Flink1.12.0使用过程中遇到的异常

1.Record has Long.MIN_VALUE timestamp ( no timestamp marker). Is the time characteristic set to ProcessingTime, or did you forget to call DataStream.assignTimestampsAndWatermarks(...)? 解决办法&#xff1a; 时间窗口事件选择此方法&#xff0c;Time导包也需要…

多个字段条件相同进行分组并过滤拼装SQL

select posts,term,user_name,GROUP_CONCAT(put_department) put_dept from hrbp_info group by posts,term,user_name having count(*)>1

我对外键的回忆

添加外键&#xff1a;&#xff08;注意&#xff1a;constraint前面没得add&#xff0c;add是alter的时候才会有的&#xff09;CONSTRAINT stu_class_fkFOREIGN KEY(stu_id)REFERENCES stu_class(id)ON UPDATE CASCADEON DELETE CASCADE在添加外键的时候&#xff0c;必须保证外键…

记录一次@Transactional问题处理

Transactional注解标志在方法上会对这个方法全局内的sql产生事务控制 如&#xff1a; Transactional mothod(){ insert A(); select A->result ->insert B(); } 同事务下用A插入的结果对B查询插入 此时的result是获取不到的 不能在method上加事务&#xff0c;需要对A单…

一道清华期中考试题(逃)

据出题的jzh老师所说... 求和【问题描述】组合数 C(n,m)是从 n 个物品中取 m 个的方案数。C(n,m)(n!)/(m!(n-m)!)斐波那契数列 F 满足&#xff0c; F[0]F[1]1&#xff0c; n≥2 时 F[n]F[n-1]F[n-2]给出 n&#xff0c;求 C(n,0)F[0]C(n,1)F[1]…C(n,n)F[n]【输入格式】一行一个…

记录docker-Skywalking集成es7异常处理

遇到的问题&#xff1a; es7容器启动成功 skywalking的oap容器启动一直在restart 启动失败 处理过程&#xff1a; 1.docker logs oap容器ID 2.对应处理解决 PUT http://192.168.1.10:9200/_cluster/settings { “transient”: { “cluster”: { “max_shards_per_node”:1…

第七章:跨程序共享数据-探究内容提供器

运行时权限 Android 6.0 之后的系统提供了两种权限&#xff1a; 普通权限。例如&#xff1a;访问网络状态、监控开机是否完成等。这种权限会在安装 APP 时询问用户是否同意。危险权限&#xff0c;也就是说运行时权限&#xff0c;需要在程序运行时动态获取用户许可。例如&#x…

记录一次docker项目连接不上docker mysql的问题

异常如下&#xff1a; CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server做了个demo项目运行dockerfile打包镜像容器并运行抛出了如…

第十周补做作业

第十周课下补做作业 相关知识点的总结 Comparable接口&#xff1a;如果链表中存放的对象不是字符串数据&#xff0c;那么创建对象的类必须实现Comparable接口&#xff0c;即实现该接口中的方法int compareTo(Object b)来规定对象的大小关系。也就是让待排序对象所在的类实现Com…