java
package com.example.demo2.servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "helloaaaaa", value = "/hello-aaaaa")
public class myservice extends HttpServlet {
private String message;
public void init() {
message = "Hello aaaaaa!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
System.out.println("执行了");
}
public void destroy() {
}
}
2、servlet生命周期
java
package com.example.demo2.servlet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
value:表示对应的资源url路径,简化写法
@WebServlet("/myservice1")
*/
@WebServlet(name="myservice1",value = "/myservice1")
public class myservice1 extends HttpServlet {
/*
* 在servlet被创建时执行
* 只会执行一次
* 什么时候被创建,默认情况下,第一次被访问时,servlet被创建
* 在内存中,servlet只存在一个对象,即单例的,但是可能存在安全问题,多线程(多个用户)同时访问时可能存在安全问题,尽量不要在servlet中定义成员变量,而是在方法中定义,每次方法进栈,都会重新创建新的变量,如果一定要定义成员变量,则可以设置为常量且不能修改
* */
public void init(){
System.out.println("init......");
}
/*
* 提供服务的方法
* 每一次servlet被访问时都会执行一次
* */
public void service(HttpServletRequest request, HttpServletResponse response){
System.out.println("service......");
}
/*
* 在servlet被杀死之前执行,一般用于销毁资源
* 在服务器被正常关闭时执行,只执行一次
* */
public void destroy(){
System.out.println("destroy......");
}
}
3、idea和tomcat
idea会为每一个项目创建一套配置i文件,在控制台打印中有:Using CATALINA_BASE:里面是项目的tomcat配置的目录,配置可以通过idea的图形化页面修改
项目在两个地方存储,一个是工作空间存储,一个是tomcat的web项目存储,二者一一对应
webinfo目录下的资源,不能直接被浏览器访问
断点调试,使用小虫子图标启动tomcat