老师教案
飞书https://eexf331wur.feishu.cn/docs/doccn5ERgMlP41SZueAOfLidCQc
配置环境变量 右击此电脑->属性->高级系统设置->环境变量(路径为tomcat安装的路径)
CATALINA_HOME
D:\develop\apache-tomcat-8.0.50
tomcat配置
bin\startup.bat windows启动脚本
bin\startup.sh linux启动脚本
bin\shutdown.bat windows终止脚本
bin\shutdown.sh linu终止脚本
conf文件夹下是一些配置信息
lib目录 用到的一些jar包
temp 临时目录
wepapps将项目发布到webapps目录下
将conf目录下的server.xml文件中的端口号改为8081
因为我们用的Oracle软件中的端口号也是8080
Idea tomcat配置
新建项目(文件->新建->项目)
Sevlet技术(Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。)
1.Sevlet是JavaEE,年纪大的程序员会说J2EE,以前叫J2EE,后来改名为JavaEE
2. 手动实现 Servlet 程序
(1)编写一个类去实现 Servlet 接口
(2)实现 service 方法,处理请求,并响应数据
(3)到 web.xml 中去配置 servlet 程序的访问地址
1)servlet标签用来给tomcat服务器配置Servlet程序
2)servlet-mapping标签用来给Servlet程序配置访问地址
3)servlet-name 给Servlet起一个别名,需要满足标识符命名规则;servlet和servlet-mapping中的servlet-name需要相同
4)servlet-class 写Servlet全类名 完整的包名.类名
5)url-pattern 配置访问地址
前面的斜杠不能省略, /正斜杠在服务器解析的时候,解析成地址: http://ip地址:port端口号/工程路径(应用程序上下文)
/hello1 会被解析为 http://ip地址:port/应用程序上下文/hello1
6)init-param标签:servlet程序的初始化参数
param-name:参数名 param-value:参数值
Servlet 的生命周期
1、执行 Servlet 构造器方法
2、执行 init 初始化方法
第一、二步,是在第一次访问的时候创建 Servlet 程序会调用。
3、执行 service 方法
第三步,每次访问都会调用。
4、执行 destroy 销毁方法
第四步,在 web 工程停止的时候调用
之前启动服务器,修改内容后,点击全部部署,就可以再次访问,不用重启服务器
通过继承 HttpServlet 实现 Servlet 程序
一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。
1、编写一个类去继承 HttpServlet 类
2、根据业务需要重写 doGet 或 doPost 方法
3、到 web.xml 中的配置 Servlet 程序的访问地址
使用Idea创建Servlet程序
@WebServlet(name ="Demo2Servlet", value ="/Demo2Servlet")
public class Demo2Servletextends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
}
}
通过上面的方式自动创建一个Servlet文件
@WebServlet(name ="Demo1Servlet", value ="/Demo1Servlet")
name="值" 相当于<servlet>标签下面的<servlet-name>
value="值" 相当于<servlet-mapping>标签下面的<url-pattern>
get和post请求
form 表单请求方式有两种: get请求 post请求
ServletConfig类
1.可以获取 Servlet 程序的别名 servlet-name 的值
servletConfig.getServletName()
2.获取初始化参数 init-param
servletConfig.getInitParameter("username")
3.获取 ServletContext 对象
ServletConfig servletConfig = getServletConfig();//获取servletConfig对象,此方法是继承过来的
ServletContext servletContext = servletConfig.getServletContext();//获取servlet上下文对象
ServletContext类
1、获取 web.xml 中配置的上下文参数 context-param
servletContext.getInitParameter("username")
2、获取当前的工程路径,格式: /工程路径
servletContext.getContextPath()
3、获取工程部署后在服务器硬盘上的绝对路径("/"表示根目录)
servletContext.getRealPath("/")
4、像 Map 一样存取数据
servletContext.setAttribute("key1", "value1");//存数据,键只能是字符串类型,值是Object类型
//根据key获取数据
Object valueOfKey1 = servletContext.getAttribute("key1");
ServletContext servletContext = getServletContext();
System.out.println("servletContext = " + servletContext);
Object tempValue = servletContext.getAttribute("key1");
//servletConfig是整个javaWeb共享的,第一次获取不到,再次刷新就可以获取到
System.out.println("line21 tempValue = " + tempValue);
servletContext.setAttribute("key1", "value1");//存数据,键只能是字符串类型,值是Object类型
//根据key获取数据
Object valueOfKey1 = servletContext.getAttribute("key1");
5.在另一个文件中也可以访问到其他文件中通过servletContext设置的对象
6.根据key删除ServletContext域中的键值对
servletContext.removeAttribute("key1");