侧边栏壁纸
博主头像
三生石博主等级

梦想还是有的,就算做咸鱼,也要做最咸的。|

  • 累计撰写 31 篇文章
  • 累计创建 55 个标签
  • 累计收到 7 条评论

javaWeb总结

三生石
2021-04-16 / 0 评论 / 0 点赞 / 55 阅读 / 4,369 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

javaWeb总结


## 程序架构

C/S架构程序

1622016460427

B/S架构程序

1622016506132

B\S架构工作原理

B/S架构采用请求/相应模式进行交互

1622016632794

计算机通过统一资源定位符实现资源访问

  • URL:Uniform Resource Locator的缩写
  • 唯一能识别Internet上具体的计算机、目录或文件夹位置的名命约定

1622016842225

web服务器

  • 是可以向发出请求的浏览器提供文档的程序
  • 提供网上的信息浏览服务

常用的Web服务器

  • nMicrosoft:IIS
  • nApache:Tomcat
  • nOracle:WebLogic
  • nIBM:WebSphere
  • nNginx

Tomcat服务器

  • Apache Jakarta的开源项目
  • 轻量级应用服务器
  • 开源、稳定、资源占用小

下载路径:http://tomcat.apache.org/download-70.cgi

Tomcat目录结构

目录说明
/bin存放各种平台下用于启动和停止Tomcat的脚本文件
/conf存放Tomcat服务器的各种配置文件
/lib存放Tomcat服务器所需的各种JAR文件
/logs存放Tomcat的日志文件
/tempTomcat运行时用于存放临时文件
/webapps当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中
/workTomcat把由JSP生成的Servlet放于此目录下

配置Tomcat

  • 默认端口:8080
  • 通过配置文件server.xml修改Tomcat端口号
<Connector port="8080" 
	protocol="HTTP/1.1" 
	connectionTimeout="20000" 
   redirectPort="8443" 	
/>

修改port的值

启动Tomcat: bin\startup.bat

访问Tomcat主页:http://localhost:端口号

停止Tomcat: bin\shutdown.bat

jsp概述

JSP(Java Server Pages)

运行在服务器端的Java页面,使用HTML嵌套Java代码实现

1622017675448

代码注释:

  • HTML注释:
  • JSP注释:<%--JSP注释--%>
  • JSP脚本中注释:<%//单行注释%><%/多行注释/%>

JSP执行过程

1622017994056

翻译_jsp.java-------翻译_jsp.class------执行

Web程序常见错误

404错误---找不到访问的页面或资源

  • 运行时,URL输入错误
  • 将页面放在WEB-INF下
  • 外部启动Tomcat,未部署项目

500错误---jsp页面代码有误

页面无法显示---未启动Tomcat

page指令

通过属性定义了JSP的特性,实现与JSP容器的通信

<%@ page  language="属性值"  import="属性值"  contentType="属性值"%>
属性说明
language指定JSP页面使用的脚本语言
import通过该属性来引用脚本语言中使用到的类文件
contentType用来指定页面的MIME类型,以及字符编码方式

out对象

  • out对象是jsp的内置对象
  • 实现数据的输出显示
属性说明
print向页面输出显示
println向页面输出显示,在结尾处添加换行

获取表单提交的数据

请求对象:request

public String getParameter(String name)

实例:

//html代码
<input type="text" name="userName">
//jsp代码
String userName = request.getParameter("userName");

get与post区别

参数出现在URL中
长度限制
安全性
URL可传播

request对象常用方法

方法名称说明
String getParameter(String name)根据表单组件名称获取提交数据
String[ ] getParameterValues(String name)获取表单组件对应多个值时的请求数据
void setCharacterEncoding(String charset)指定每个请求的编码
RequestDispatcher getRequestDispatcher(String path)返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

内置对象

jsp已经准备好的,可以直接使用的对象

  • 请求对象:requesst
  • 输出对象:out
  • 相应对象:response
  • 应用程序对象:application
  • 会话对象:session
  • 页面上下文对象:pageContext
  • 页面对象:page
  • 配置对象:config
  • 异常对象:exception

中文乱码

jsp中默认使用的字符编码方式:ios-8859-1,不支持中文

常见的支持中文的编码方式

编码方式收录的字符
gb2312常用简体汉字
gbk简体和繁体汉字
utf-8所有国家需要的字符

解决中文乱码

设置请求和相应的编码格式

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
<%@ page language="java" contentType="text/html; charset=utf-8"%>

get请求出现乱码

  • 治标的方法:new String( s.getBytes("iso-8859-1"), "utf-8" );
  • 治本的方法:配置tomcat\conf\server.xml文件
<Connector connectionTimeout="20000" port="8080" 
protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

在请求中存储属性

在请求中保存属性

public void setAttribute(String name,Object o);
request.setAttribute("mess", "注册失败");

在请求中获取属性

public Object getAttribute(String name)

1.在使用属性值的时候要做非空判断,否则会出现空指针异常

2.它的返回值类型是Object类型,需要做数据类型的转换

传发与重定向

转发

RequestDispatcher对象==================forward()方法

request.getRequestDispatcher("url").forward(request, response)
<jsp:forward page="url" />

重定向

将用户请求重新定位到一个新的URL

response.sendRedirect("url")

区别

1622025998959

比较项转发重定向
URL变化
重新发出请求不会
是否携带请求
目标URL要求仅本Web应用任意URL

重定向是客户端行为,转发是服务器行为

session对象

  • 一个会话就是浏览器与服务器之间的一次通话
  • 会话可以在多次请求中保存和使用数据

用法

public void setAttribute(String name, Object value);
//用法:
session.setAttribute("userName", "张三丰"); 

public Object getAttribute(String name);
//用法:
String userName=(String)session.getAttribute("userName");

每个session都有一个唯一的sessionid

public String getId();
session.getId();

会话的清除和过期

若没有清理机制,会导致性能问题或服务器崩溃

  • 程序主动清除session数据
  • 服务器主动清除长时间没有再次发出请求的session

程序主要清除session数据

设置会话失效

session.invalidate();

移除会话的一个属性

session.removeAttribute("userName");

服务器主动清除长时间没有再次发出请求的session

设置会话过期时间

方法一

public void setMaxInactiveInterval(int interval);

方法二:设置web.xml文件

<session-config>
       <session-timeout>30</session-timeout>
</session-config>

cookie以文件方式保存数据

添加数据

public void addCookie(Cookie cookie)

获取数据

public Cookie[] getCookies()

设置有效期

public void setMaxAge(int expiry)

application

<body>
<%
    //从全局对象中获取数据
    Integer count = (Integer)application.getAttribute("count");
    if (count == null){
        application.setAttribute("count",1);
    }else{
        application.setAttribute("count",count+=1);
    }
%>
<h1 style="color: red">
    Good Morning! have a good day!!
</h1>
<span>
    当前访问人数:<%=count%>
</span>
</body>

三个对象对比

request、session、application

相同点:都可以储存属性

不同点:

  • request中存储的数据仅在一个请求中可用
  • session中存储的数据在一个会话的有效期内可用
  • application中存储的数据在整个Web项目中可用
0

评论区