eclipse与idea
同为java主流开发工具,用于代码开发
区别:
1、工作空间
eclispse使用的是是唯一工作空间的原则,将使用eclispe开发的所有项目系统存放至指定的工作空间,由于所有项目存在同一工作空间,eclipse可以快速的对同一工作空间的不同项目进行切换
idea则为每个项目单独创建指定目录空间,所以idea每次每个工作区只能操作一个项目,但是可以启动多个工作区
2、代码提示
eclipse可以通过配置全字母进行代码的自动提示
idea自带代码全字母提示,配置忽略大小写后提示功能更完善并且对于导包,字符串设置都有提示
3、插件功能
eclipse虽然拥有很多的插件匹配,但相对于idea而言就没有那么完善了
Idea配置
修改编码集
设置ctrl+鼠标滚轮修改字体大小
设置自动导包
忽略大小写提示
https://blog.csdn.net/qq_36135928/article/details/90348725
idea创建动态web工程进行tomcat配置
1、点击new->Project…
2、选择对应模板选择指定tomcat服务
3、如果没有配置过tomcat需要首先配置tomcat
4、配置tomcat项目默认打开以及访问项目名
**URL:**Idea启动tomcat后自动打开的浏览器以及浏览器默认访问的地址(一般不进行修改,在修改项目访问名称后会自动修改)
**HTTP port:**访问端口号
项目访问路径(/必须)
5、配置classes与lib
calsses用于保存运行编译的class文件
lib用于保存项目运行时需要的jar包
(1)在WEB-INF下分别创建classes与lib文件夹
(2)打开项目配置
选择自定义输出位置将之前的classes位置选择
配置lib自动导入jar包
Servlet
在服务器运行期间用于对非静态资源请求做出处理并给予响应的程序
要想在web通过tomcat执行java代码,那么就必须实现servlet接口
Servlet接口中的方法:
生命周期方法:
void init(ServletConfig config) 用于初始化Servlet
void service(ServletRequest req ,ServletResponse resp) 用于处理用户请求且做出响应
void destroy() 用于从容器中销毁该Servlet实例
servlet的生命周期
servlet的生命周期基于三个相应的方法
服务器启动后,当客户端第一次请求对应servlet时,调用对应servlet init()方法进行初始化创建,在程序执行期间每次请求重复调用service()方法进行服务的处理,当服务器正常关闭时,调用destroy()方法执行销毁
tomcat执行时对应的serlvet实例是单例模式,当客户发送http请求至tomcat,tomcat解析请求,根据地址查找对应web.xml,上所有的servlet-mappring中的url-pattern值中进行匹配,如果没有匹配项返回404,如果存在匹配性获取对应servlet-name继续上servlet的servlet-name进行匹配获取对应servlet-class使用反射进行操作,进行操作前会进行判断,是否已经实例化过,如果创建过(不是第一次被请求)那么直接返回请求的对象调用service方法,如果没有请求过(第一次被请求),调用init方法进行初始化创建之后调用service方法处理请求。service方法在服务器运行期间随着客户的请求重复调用,服务器关闭时,会在关闭之前自动调用destroy方法进行销毁
获取该Servlet对应的ServletConfig
ServletConfig getServletConfig() 返回该Servlet对应的配置对象
基于servlet接口方式实现web功能的调用
1、创建java类实现servlet接口
import javax.servlet.*;
import java.io.IOException;
//创建java类 实现servlet接口
//注意servlet包由tomcat提供 所以一定首先配置tomcat
public class MyServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("servlet初始化");
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("serlvet被调用");
}
@Override
public void destroy() {
System.out.println("servlet销毁");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
}
2、在web.xml中配置请求路径与servlet之间的联系
<servlet-mapping>