X65535JavaWeb部分01
Tomcat基础入门1
/*
Tomcat基础
请求和响应
request 客户端向服务端发送数据
response 服务器向客户端发送数据
静态资源和动态资源
静态资源
html,css,js代码,txt文本,jpg图片等
动态资源
jsp页面,Servlet程序,和后端/数据库交互的页面
Tomcat安装和使用
找到当前jdk对应的Tomcat版本
直接解压就可以
jdk1.8对应Tomcat8.0.50最好
Tomcat文件解析
bin 专门存放Tomcat可执行文件
conf 专门存放Tomcat配置文件
lib 专门存放jar包,就是一些实现类
logs 存放Tomcat日志文件,默认为空
temp 专门存放临时数据
webapps 专门存放部署的Web工程,1个目录1个工程
work 存放jsp转换为servlet的源码
如何启动Tomcat
第1种方法
找到bin目录下的startup.bat文件
双击就可以启动
测试Tomcat是否启动成功
http://localhost:8080
会出现Tomcat欢迎页面
前提是配置好JAVA_HOME环境变量
第2种方法
打开命令行
地址定位到<tomcat>/bin目录下
输入
catalina run
命令即可启动服务器
可以看到错误原因
Tomcat的停止
1. 第1种方式:关闭Tomcat命令行
2. 快捷键ctrl + c
3. 找到Tomcat bin目录下的 shutdown.bat来停止Tomcat运行
如何修改Tomcat端口号
Tomcat默认端口号是8080
出于某种情况8080端口号被占用
需要修改端口号
找到conf/server.xml
打开
往下走1点
找到<Connector port=...
port后面就是端口号
可以自行修改
可选范围是1 - 65535
修改完端口号一定要重启Tomcat服务器
*/
Tomcat基础入门2
/*
如何部署Web工程到Tomcat服务器中
第1种方法:
只要把Web工程的目录拷贝到webapps目录下即可
或者说直接创建也行
进入自己的工程需要在
localhost:8080后面加上
/<your project name>
或者是
/<your project name>/index.html
没有访问路径默认访问的是ROOT工程的index.html页面
第2种方法:
找到<your home>\apache-tomcat-8.0.50\conf\Catalina\localhost目录
创建xml文件
里面添加如下内容
<Context path="/web03" docBase="E:\IdeaProjects\JavaWeb\out\artifacts\web03_war_exploded" />
其中path是访问路径,需要和xml文件名相同
docBase是项目路径
第3种方法:
拖动html文件到浏览器
也可以直接访问
此时浏览器网址页显示
file:///E:/book/index.html
使用的是file协议
file协议告诉浏览器直接读取file后面的路径
解析展示到浏览器上即可
如何将IDEA工具和Tomcat整合起来用
找到Application Servers
点击添加Tomcat Server
然后配置Tomcat路径
<your home>\apache-tomcat-8.0.50
然后点击Apply即可
如何创建动态的Web工程
new1个新模块
在创建的时候选择第2项
Java Enterprise
然后选上Web Server
点击next
点击finish
web动态工程就创建出来了
然后添加lib目录
lib主要放第3方的jar包
说明一下
src存放自己编写的Java源码
web目录专门存放web工程资源文件
如html文件,css文件等
WEB-INF目录是一个受服务器保护的目录
浏览器无法直接访问到此目录的内容
web.xml是一个web工程配置部署描述文件
可以配置很多web工程的依赖
*/
Tomcat基础入门3
/*
Tomcat添加第3方jar包
将需要添加的jar包拷贝到lib目录下
然后选中2个jar包
直接Add as Library就可以用了
如何创建分级包
点击项目结构右上方的小齿轮
取消勾选Compact Middle Packages即可
建包时输入.就可以分级了
如何去除依赖
点击File -> Project Structure -> Module -> 勾选去除依赖
lib里面的jar包就没有了
添加第3方jar包的第2种方式
点击File -> Project Structure -> library -> 选中需要加入的jar包
然后进入artifacts -> fix -> add common... into library
记住jar包虽然可以自由命名,但建议使用默认名称
Web工程如何在Tomcat项目里面跑起来
Tomcat开发小技巧
Tomcat实例会在Web工程创建的时候自动创建
需要改一个名字
否则有多个工程会分不清
点击下拉框 -> Edit configurations -> 之后就自己操作吧
点击实例 -> 进入Deployment -> 在里面添加需要部署的工程
Application context是工程路径
进入Server -> URL显示的地址就是启动运行实例时默认打开的访问地址
上方launch表示默认用什么浏览器访问
Tomcat工程的启动
绿色小三角表示正常启动
红色方块表示停止实例
启动后点击绿色弯曲箭头可以选择重启实例
在Edit configurations里面修改地址,端口号或默认浏览器需要重启Tomcat实例
修改热部署
On frame deactivation -> update classes and resources
不用重启
*/
Servlet基础1
/*
什么是Servlet
是JavaEE规范之一,规范就是接口
JavaWeb3大组件之一,JavaWeb组件有Servlet程序,Filter过滤器,Listener监听器
Servlet是运行在服务器的Java程序,可以接收客户端发来的请求,并相应数据给客户端
手写实现Servlet程序
1. 实现Servlet接口
2. 实现service方法,处理请求并相应数据
3. 到web.xml配置servlet程序的访问地址
配置web.xml
如下图所示
*/
通过实现Servlet接口处理get和post请求
package com.bilibili.Is;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class Is2 implements Servlet {
public Is2() {
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
/**
* service方法专门用来处理请求和相应
* @param servletRequest
* @param servletResponse
* @throws ServletException
* @throws IOException
*/
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("visited");
/*
程序运行到此处
需要针对get/post方法进行判断
并进行分别处理
但源码要求ServletRequest子类可以使用getMethod()方法
需要强制类型转换
*/
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
String method = httpServletRequest.getMethod();
if ("GET".equals(method)) {
/*
方法之间的调用不需要new对象
非静态方法不能调用静态方法
*/
doGet();
}else {
doPost();
}
}
/**
* 处理get请求的方法
*/
public void doGet() {
System.out.println("GET CODING");
}
/**
* 处理post请求的方法
*/
public void doPost() {
System.out.println("POST CODING");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
通过继承HttpServlet类实现Servlet程序
package com.bilibili.Is;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Is3 extends HttpServlet {
/*
通过继承HttpServlet类实现Servlet程序
开发中用的比较多
1. 编写一个类继承HttpServlet类
2. 根据业务需要重写doGet或doPost方法
3. web.xml中配置访问地址
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
System.out.println("GET METHOD");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doPost(req, resp);
System.out.println("POST METHOD");
}
}
<servlet>
<servlet-name>Is3</servlet-name>
<servlet-class>com.idea.Is.Is3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Is3</servlet-name>
<url-pattern>/real</url-pattern>
</servlet-mapping>