首页 / JAVA / LMER的JAVAWeb笔记
LMER的JAVAWeb笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了LMER的JAVAWeb笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7953字,纯文字阅读大概需要12分钟。
内容图文
![LMER的JAVAWeb笔记](/upload/InfoBanner/zyjiaocheng/589/bc9f85f85302478989e3999c49c980a9.jpg)
JAVAWeb笔记
一些基本概念
- 网络编程中的两个问题:
- 如何精确的定位到网络上的一台或多台主机
- 找到主机后如何进行通信
- 网络编程中的要素
- IP 和 端口号
- 网络通信协议
IP地址
InetAddress类
- 唯一定位一台网络上的计算机
- 127.0.0.1:本机 localhost
public class test {
public static void main(String[] args) {
try {
//查询本机地址
InetAddress ia1 = InetAddress.getByName("127.0.0.1");
System.out.println(ia1);///127.0.0.1
InetAddress ia2 = InetAddress.getByName("localhost");
System.out.println(ia2);//localhost/127.0.0.1
InetAddress ia3 = InetAddress.getLocalHost();
System.out.println(ia3);//LAPTOP-PP239F6P/10.115.38.34
//查询网站地址
InetAddress ia4 = InetAddress.getByName("www.baidu.com");
System.out.println(ia4);//www.baidu.com/110.242.68.4
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
端口
端口表示计算机上的一个程序的进程
- 不同的进程有不同的端口号;用来区分软件
- TCP/UDP
端口的分类:
- 公有端口: 0-1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
- 程序注册端口: 1024-49151(分配给用户和程序的)
- Tomcat:8080
- Mysql:3306
- Oracle:1521
- 动态、私有的: 49152-65535
Web应用程序
概念:可以供浏览器访问的程序;
- 静态Web
- html css
- 提供给所有人看的数据不会发生变化
- 动态Web
- 几乎所有的网站
- 提供给所有人看的数据会发生变化,每个人在不同时间、地点看到的信息不同
- 技术栈:Servlet/ISP、ASP、PHP
在Java中,动态Web资源开发的技术统称为JavaWeb
组成(静态Web和动态Web):
- html , css , js
- jsp , servlet
- Java程序
- jar包
- 配置文件(Properties)
Web应用程序在编写完毕后,需要一个服务器来统一管理以便给外界访问
静态Web
htm和html后缀的文件都是网页的后缀,只有在服务器上存放了这些文件客户端才能访问
- 缺点
- Web页面无法动态更新,用户看到的都是同一个页面
- 点击特效类的都是属于伪动态
- JavaScript
- VBScript
- 无法与数据库交互,数据无法持久化
- Web页面无法动态更新,用户看到的都是同一个页面
动态Web
缺点:
- 假如服务器的动态Web资源出现了错误,就需要重新编写后台程序
优点:
- Web页面实现动态更新,用户看到的都是不同的页面
- 可以与数据库交互,数据实现了持久化
Web服务器
解释:服务器是一种被动的操作,用来给用户的一些请求和给用户一些响应信息
技术的实现
C/S架构:客户端和服务器
B/S架构:浏览器和服务器
ASP:
- 在HTML中嵌入VB的脚本,ASP+COM
- 一个页面的实现需要高达千行多的代码,极其混乱,维护成本极高
- IIS服务器
- C#
PHP:
- 开发速度快,功能强大,可跨平台,代码简单
- 无法承载大的数据访问量(局限性)
JSP/Servlet:
- 采用B/S架构
- 基于Java实现
- 可以承载高并发,高可用,高性能带来的影响
TomCat
目录
bin: 存放tomcat服务器的可执行程序
conf: 存放tomcat的配置文件
lib: 存放jar包
logs: 存放服务器运行时输出的日志信息
temp: 存放临时数据
webapps: 存放部署的web工程
work:tomcat工作时的目录,存放tomcat运行时jsp翻译为Servlet的源码,和Session的钝化目录
HTTP
什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-相应协议,通常运行在TCP之上
- 文本:html,字符,字符串,txt…
- 超文本:图片,音乐,视频,定位…
- 默认端口:80
HTTPS(s:安全的)
- 默认端口:443
HTTP1.0/1.1
Http1.0:客户端与Web服务器连接后,只能获得一个Web资源,然后就会断开连接
Http1.1:客户端与Web服务器连接后,可以获得多个Web资源
HTTP请求
- 客户端–发送请求–服务端
百度:
Request URL: https://www.baidu.com/ //请求地址
Request Method: GET //get方法/post方法
Status Code: 200 OK //状态码:200
Remote Address: 110.242.68.4:443
请求行中的请求方式:GET,POST,HEAD,DELLET…
- get:请求所能携带的参数少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但相对高效
- post:请求所能携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但相对不高效
HTTP响应
- 服务端–响应–客户端
百度:
Cache-Control: private 缓存控制
Connection: keep-alive 连接
Content-Encoding: gzip 编码
Content-Type: text/html;charset=utf-8 类型
响应的状态码:
- 200:请求响应成功
- 3XX:重定向
- 4XX:找不到资源(404)
- 5XX:服务器代码错误(500 502:网关错误)
IDEA中JavaWeb项目的创建
新建项目
然后就是自定义名字和路径,然后来看项目中各目录的作用
Servlet
什么是Servlet
- Servlet是JavaEE规范(接口)之一;是一个运行在服务器的小程序,可以接受客户端发送过来的请求,并响应数据给服务端
- JavaWeb三大组件:Servlet程序;Filter过滤器;Listener监听器
通过实现Servlet接口去实现Servlet程序的构建
在src目录下创建Servlet类的包,然后创建Servlet类
import javax.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
//service方法是专门用来处理请求和响应的
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("HelloServlet 被访问了");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
然后需要去web的配置文件中进行修改
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- servlet标签给tomcat配置Servlet程序 -->
<servlet>
<!-- 起别名 -->
<servlet-name>servlet1</servlet-name>
<!-- servlet的全类名 -->
<servlet-class>com.lmer.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping标签给servlet程序配置访问地址 -->
<servlet-mapping>
<!-- 告诉服务器当前配置的地址是给谁使用的 -->
<servlet-name>servlet1</servlet-name>
<!-- 配置访问地址 </br>
/表示的地址是http://ip:port/工程路径
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
Servlet的生命周期
- 执行 Servlet 的构造器方法
- 执行 init 初始化方法
第一和第二步是在第一次访问Servlet程序时会调用的
- 执行service方法
每次访问都会调用
- 执行 destroy 销毁方法
在Web工程停止时调用
package com.lmer;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
//service方法是专门用来处理请求和响应的
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("HelloServlet 被访问了");
//HttpServletRequest是ServletRequest的一个子类,调用其getMethod方法来获得请求的类型
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
String method = httpServletRequest.getMethod();
if("GET".equals(method)){
doGet();
}else if("POST".equals(method)){
doPost();
}
}
public void doPost() {
System.out.println("执行POST请求的访问响应");
}
public void doGet() {
System.out.println("执行GET请求的访问响应");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
通过继承HttpServlet来实现Servlet程序
- 写一个类去继承HTTPServlet
- 重写doGet和doPost方法
- 去配置文件中进行修改操作
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
使用IDEA菜单生成
然后设置名字
配置
然后就可以访问了
Servlet总继承关系
ServletConfig类
从类名上解析就是Servlet类的配置信息类
Servlet和ServletConfig类都是由Tomcat来进行创造,我们负责使用的。
在第一次访问Servlet对象的时候,就会创建该Servlet对象,其对应的ServletConfig对象也随之创建
三大作用
- 获得Servlet程序的别名–>servlet-name的值
- 获取初始化参数init-param
- 获取servletContext对象
获得Servlet程序的别名–>servlet-name的值:
获取初始化参数init-param:
首先需要去配置文件中配置Servlet程序的初始化参数
然后再在Servlet程序中使用
获取servletContext对象:
System.out.println(servletConfig.getServletContext());
//org.apache.catalina.core.ApplicationContextFacade@4541df9b
注意!!!!!!
如果是用继承HttpServlet的方式来实现Servlet程序的话,在重写init(ServletConfig config)方法的时候,需要注意以下问题:
内容总结
以上是互联网集市为您收集整理的LMER的JAVAWeb笔记全部内容,希望文章能够帮你解决LMER的JAVAWeb笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。