本文主要对jsp和tomcat环境做了简单的介绍。
JSP(java服务器页面)是由[Sun Microsystems](https://baike.baidu.com/item/Sun Microsystems)公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
在使用 jsp 之前我们要先准备好环境
名称 | 版本 | 作用 |
---|---|---|
apache-tomcat | 8.0.30 | web 服务器,部署 web 应用 |
apache-maven | 3.6.2 | 管理项目jar文件,构建项目 |
创建项目
选择 maven
勾选 Create from archetype 选中 maven-archetype-webapp(这里不要选错)
点击 Next 之后,可以看到
Group id:一般为域名,或组织名英文简写
ArtifactId:项目文件名称
再点击 Next,可以看到
这两个使我们之前创建项目指定的 archetype 如果与图中不一致说明你创建项目时候指定 archetype 错了
点击 Next,可以看到
Project Name:项目名称
Project Location:项目路径
点击 Finish,可以看到一个崭新的画面
这一步完成说明你的初始环境就经搭建完成了,后续将 tomcat 添加到运行方式中就可以运行 jsp 了
准备 pom.xml 依赖
group Id | 作用 |
---|---|
javax.servlet.jsp | 支持 jsp |
javax.servlet | 支持 servlet |
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>javax.servlet.jsp-apiartifactId>
<version>2.3.1version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>4.0.1version>
dependency>
web 应用程序目录结构
展开目录可以看到 src 下分别有 main
-webapp(你的 jsp 就是放在这个目录下)
-WEB-INF(相关的 web 配置)
-web.xml 配置这个 web 应用程序的核心文件
index.jsp(自带的页面用于测试)
真正成为一个 web 应用程序
点击 File 下的 Project Structure
在 Modules 下选中项目点击 +
添加 web 应用程序
在 Deployment Descriptors 点击 + (如果这里有文件就先删除在添加,这里主要是项目的 web.xml添加到 web 应用中)
点击这个 web.xml
可以看到这里多了一个目录说明配置好了
在 Web Resource Directory 点击 + (这里主要是将项目的web app目录指定标明这个web app 是一个web应用)
这样就大功告成了
点击 ok,然后可以看到你的 web app 变成了蓝色(正式成为了web 应用程序)
配置 tomcat
添加本地 tomcat
可以看到这就是配置 tomcat 的界面
①:你的 Tomcat Server 名称(随便起就可以)
②:你的 Application Server 如果没有需要进行配置
点击 Configure…
可以看到,这里是没有 Tomcat Server 的,需要将本地的 tomcat 添加进去
③:你的 tomcat 地址
④:可以设置端口号等一些配置信息
⑤:需要添加 jar
点击fix,可以看到他已经添加好了,点击 apply
注意:这里如果添加不了war包,要刷新一下maven
再回到这个页面我们可以看到 url 已经发生了改变 http://localhost:8080/hellojsp/
运行 tomcat 测试 jsp 页面
创建一个用于测试的 jsp 文件
运行 tomcat,查看结果
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容,而动态生成其中部分内容主要就是通过jsp“动作”,jstl等传输数据进行动态生成(通常由servlet传递数据)
创建servlet,在 java 目录中创建 servlet
Servlet(Server Applet),全称Java Servlet,。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
package cn.net.ablue;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
// 该注解标记该类为 servlet 可以同过请求方式访问到该 servlet
@WebServlet(name = "word")
public class HelloServlet extends HttpServlet {
@Override
// post 请求
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
// get 请求
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 相应页面请求 io 写出
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("hello servlet");
// 请求对象中附带一个属性 username = 小明
request.setAttribute("username","小明");
// 请求 hello.jsp,并将这次请求的对象的内容也带走
request.getRequestDispatcher("hello.jsp").forward(request,response);
}
}