1、Tomcat
1.解压
2.完成
3.启动 apache-tomcat-9.0.24\bin\startup.bat
4.测试 http://localhost:8080/
5.命令窗口关闭就结束了
6.乱码问题:在该目录下apache-tomcat-9.0.24\conf\logging.properties
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
#window默认是GBK
java.util.logging.ConsoleHandler.encoding = GBK
7.为了方便使用,配置到环境变量
2.maven
1.解压
2.完成
3.设置仓库
- 在maven解压目录下创建一个文件夹
repository
‘ - 在setting.xml 中配置 仓库地址
添加
<localRepository>C:/Users/Administrator/Desktop/apache-maven-3.6.1/repository</localRepository>
中间是你仓库的地址
4.配置环境变量
- MAVEN_HOME
- M2_HOME
3.idea如何创建jsp项目
1.创建工作空间(project)
2.选择Empty Project
3.Project Settings->Project里完成jdk,语言版本和输出目录相关配置。
4.File->New->Moudule.
5.选择Java Enterprise ->Web Application,具体勾选选项如下
在jetty的安装目录下,找到start.ini修改jetty服务器默认端口。
## Connector port to listen on
jetty.http.port=8888
6.jetty服务器相关配置如下
7.输入模块名称,出现的项目目录结构如下
8.点击菜单栏,服务器旁边的运行按钮,出现项目首页如下
4.idea jsp项目如何添加jar包
1.在项目的WEB-INF下新建lib目录,并添加一个测试jar包,如下:
2.Project Settings->Module,配置项目依赖
3.编写测试类测试
public class Test {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url,"root","root");
if(conn!=null){
System.out.println("数据库连接成功!");
}else{
System.out.println("数据库连接失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:
数据库连接成功!
作业:
1.说说jetty与tomcat的区别。
1.Jetty更轻量级。这是相对Tomcat而言的。
由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。
2.jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本
3.然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
2.如何修改jetty默认端口?如何修改tomcat默认端口?
jetty默认端口是8080,修改端口号也很简单,首先进入到jetty服务器安装目录下会看到start.ini配置文件,这里就是jetty启动时加载的配置,其中包括要加载的模块,超时时间配置还有这里的端口号等
首先执行 vim start.ini 打开配置文件,找到jetty.http.port这一个配置项,默认情况下是注释且为8080,现在去掉注释修改为自定义的端口号即可,比如
jetty.http.port=8888
修改完之后,保存并退出,然后重启jetty即可生效
另外用nginx做前端服务器代理jetty和代理tomcat的配置是一样的
3.如何启动jetty服务器?
一般情况下都可以通过安装目录下的start.jar包来启动jetty,除此之外,在linux/unix下还可以通过jetty.sh来进行启动。
启动命令如下:
java -jar start.jar
4.简述Servlet的生命周期。
servlet的生命周期分为四个阶段:1:实例化 2:初始化 3:处理请求服务 4:对象销毁
servlet在第一次被访问就会实例化一个servlet对象,然后立即调用init方法初始化对象,创建后的servlet对象会一直驻留在服务器内部,为后续的请问提供服务,只要有请求访问servlet,服务就会调用service方法处理请求,直到服务器关闭或web项目被移除,随着web应用的销毁,servlet也就被销毁,在销毁之前会调用destroy方法进行善后处理。
5.Servlet如何处理用户的请求?
6.说说get请求和post的请求的区别。
1.GET在浏览器回退时是无害的,而POST会再次提交请求。
2.GET产生的URL地址可以被Bookmark,而POST不可以。
3.GET请求会被浏览器主动cache,而POST不会,除非手动设置。
4.GET请求只能进行url编码,而POST支持多种编码方式。
5.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
6.GET请求在URL中传送的参数是有长度限制的,而POST么有。
7.对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
8.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9.GET参数通过URL传递,POST放在Request body中。
7.说说相对地址与绝对地址的区别。
举例: 以故宫为例:
对于北京当地人来说,你说【】故宫】他就知道在哪,对于外国人来说你要告诉他在【中国北京故宫】
再以文件夹【 C://User/HTML】为例:
在HTML文件夹中的web文件添加Photo或者URl中的内容的超链接,
用绝对路径是C://User/HTML/photo
相对路径是 /photo
综合:相对路径是相对与当前路径的位置,是简单得编写
8.说说请求重定向与请求转发的区别。
1.请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
2.请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
9.jsp有哪九大内置对象?servlet如何获取session和application对象?
内置对象:
request HttpServletRequest------类型
response HttpServletResponse
config ServletConfig
application ServletContext
session HttpSession
exception Throwable
page Object(this)
out JspWriter
pageContext PageContext
获取方式:
ession可以通过request.getSession();来获取
application可以通过this.getServletContext()来获取,
10.什么是单例?单例有哪些设计模式?
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例