web项目的getContextPath()

           伯乐一看小编的这个博文的标题是不是觉得有些小,以点到面,知道了web中getContextPath()这种获取路径的方式,显然其他的方式的是可以以此类推的。常说,工作学习找共同点嘛。

       上一段我们也提高getContextPath()的含义,是jsp中获取路径的一种方式,返回当前页面所在的应用的名字。知其然知其所以然,知道它大体上的含义,看看在项目中是如何使用的?

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
<base href="<%=basePath%>">
在程序中我们一般这样使用。说到了这里,我们可以看看request常用的方法:

       request.getSchema(),返回的是当前连接使用的协议,一般应用返回的是http、SSL返回的是https

       request.getServerName(),返回当前页面所在的服务器的名字;

       request.getServerPort(),返回当前页面所在的服务器使用的端口,80;

       request.getContextPath(),返回当前页面所在的应用的名字。

       getContextPath()是jsp中获取路径的一种方式,那么获取到结果是什么呢?jsp其他获取路径的方式是怎样的呢?表示好奇,请听分解:

       以访问的jsp为:http://localhost:8080/dmsd-itoo-exam-log-web/course/index.jsp,工程名为/dmsd-itoo-exam-log-web为例:

        request.getContextPath(),得到工程名:/dmsd-itoo-exam-log-web

        request.getServletPath(),返回当前页面所在目录下全名称:/course/index.jsp;

        request.getRequestURL(),返回IE地址栏地址:http://localhost:8080/dmsd-itoo-exam-log-web/course/index.jsp;

        request.getRequestURI() ,返回包含工程名的当前页面全路径:/dmsd-itoo-exam-log-web/course/index.jsp。
       对jsp获取当前应用的路径方法和request常用方法有了基本的了解,下面后台通过request.getScheme()获取当前页面使用协议遇到的问题:request.getScheme()获取到的确实http而不是https,与request.getRequestURL()拿到的一样也是http。

       这是为什么呢?

       原来,nginx+tomcat部署web服务,tomcat接收到的请求是来自nginx的http请求。我想这也是上一博文中说到项目用https启动请求不到页面的原因吧。

### 如何在 Eclipse 中创建 Web 项目并运行 HTML 页面或 Servlet 示例 #### 创建 Web 项目 要在 Eclipse 中创建一个 Web 项目,需按照以下方法操作: 1. **安装必要的开发环境** 确保已安装 `Eclipse IDE for Java EE Developers` 版本[^2]。此版本包含了构建 Web 应用程序所需的工具。 2. **新建 Dynamic Web Project** 打开 Eclipse 后,在菜单栏中依次点击: - File → New → Other... - 在弹出窗口中选择 `Dynamic Web Project` 并点击 Next。 3. **配置项目基本信息** 输入项目的名称,并设置目标运行时(Target Runtime),例如 Apache Tomcat 或其他支持的服务器。这一步非常重要,因为运行时决定了应用程序部署到哪个容器上。 4. **完成项目创建** 继续下一步直到 Finish 按钮可用为止,点击 Finish 即可生成一个新的 Web 工程结构。 #### 添加 HTML 文件 要向该项目添加 HTML 文件,请执行以下步骤: 1. **定位至 WebContent 文件夹** 在项目资源管理器视图下找到名为 `WebContent` 的目录,这是存储静态页面的地方[^3]。 2. **右键创建新文件** 右击 `WebContent` 文件夹,选择 New → HTML File 来新增一个 HTML 文档。输入文件名如 `index.html`,然后编辑其内容。 3. **保存修改后的HTML文档** #### 编写和配置 Servlet 如果希望实现动态功能,则可以通过编写 Servlet 实现交互逻辑: 1. **放置 .java 文件的位置** 将 `.java` 文件存放在指定路径下的源码包里,具体为 `Java Resources -> src -> {package_name}`。 2. **定义 Servlet 类及其映射规则** 下面是一个简单的 Servlet 示例代码片段: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } } ``` 注意这里的注解 `@WebServlet("/hello")` 表明该 servlet 响应 `/hello` URL 请求[^4]。 3. **测试 Servlet 功能** 配置好之后,启动内置服务器(Tomcat或其他兼容的应用服务器)。通过浏览器访问地址类似于 http://localhost:{port}/{context_path}/hello ,其中 `{port}` 是端口号,默认可能是8080;而 `{context_path}` 则取决于您设定的工程名或者自定义上下文根路径。 #### 运行与调试 最后一步就是实际运行整个应用了: - 如果一切正常的话,当您打开对应的链接时应该能看到预期的结果——无论是纯文本还是渲染过的网页界面。 - 对于任何错误提示信息,请仔细阅读控制台日志输出以便快速定位问题所在之处。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值