温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Web 开发中web、jsp的详细介绍

发布时间:2020-09-08 16:37:26 来源:网络 阅读:341 作者:阿汤哥94 栏目:开发技术

一:web技术介绍

1.web开发:主要是用html,java,css,javascript,dom技术开发网页,网站。并且把这些开发好的网站或者网页部署到一个可以提供服务的服务器上,然后让外界可以直接去访问这些网站和网页中的资源。
2.web服务器:目前在Web应用中,有多种Web服务器可供选择,常见的服务器有:
IIS:是源于Microsoft的公司的一种信息服务器,服务对象是基于Windows系统平台的程序应用
Tomcat:Tomcat是Apache基金会开发的一个小型的轻量级应用服务器,技术先进,性能稳定,而且免费,占用资源小、系统运行快。(安装Tomcat的步骤在我的博客会写哟!!!)

二:JSP介绍

1.jsp概述
JSP:(Java Server Page),是一种运行在服务器端的java页面,最初是由Sun公司倡导、许多公司参与一同建立起来的一种动态网页技术标准。
2.jsp工作原理
jap运行在服务端,当用户通过浏览器请求访问jsp资源时,Web服务器会使用jsp引擎对请求的jsp进行编辑和执行,然后将生成的页面返回给客户端浏览器进行显示,如下图所示:
Java Web 开发中web、jsp的详细介绍
3.jsp执行过程
当jsp请求提交到服务器时,Web容器会通过以下三个阶段进行处理。
翻译阶段:将编写好的就是jsp文件通过jsp引擎转换成可识别的Java文件(.java)。
编译阶段:将java文件编译成可执行的字节码文件(.class文件)
执行阶段:经过翻译和执行的两个阶段,生成可被执行的二进制字节码文件,此时就进入执行阶段,执行结束后,Web容器把生成的结果页面返回到客户端显示。

4.jsp注释
<%--JSP注释--%> 这个是jsp专用的注释,
同时jsp还支持html注释,java注释,java的注释需要写在jsp中

5.jsp脚本
JSP的脚本元素分成三种:
(1)脚本声明 被翻译成Java程序中的成员变量内部类
格式:
<%!
Java代码 可以变量 定义类,在这里声明的变量是全局变量
%>
(2)脚本表达式 被翻译成out中的输出语句
格式:
<%= 表达式%> 这个表达式后面不能使用分号,类似于输出,如果需要输出特殊字符,需要转义字符
(3)3、脚本片段 被翻译成Java程序中的代码,service
格式:
<%
直接书写Java程序 ,这里声明的变量是局部变量
%>

6.jsp常见错误调试方法
Java Web 开发中web、jsp的详细介绍
7.post和get
在html中,表单用于填写数据,并通过提交实现数据的请求,提交表单的方式有两种,分别是post和get,但是当用户提交有中文数据的信息时,可能会出现乱码。

原因:客户端提交的数据,使用的utf-8编码,然后服务器端使用的iso-8859-1解码了(tomcat7以前默认的编码),而在我们jsp程序获取到的数据就是服务器解码后的乱码数据。
解决:我们需要把这些乱码的数据全部恢复到正确的数据,就需要把乱码的数据从新编码,使用默认的编码将乱码之后的数据重新编码到提交时候的数据
然后再根据我们使用的编码进行解码

两种方式的区别以及解决乱码的方式如下:
https://blog.51cto.com/14441795/2419949

8.jsp使用属性存储数据
在jsp中为了方便数据库的使用,有时需要将数据通过request对象的属性进行保存和读取,这就需要使用request对象的两种方法,分别是setAttribute()方法和getAttribute()方法

setAttribute()方法语法:public void setAttribute(String name,Object o)
该方法没有返回值,参数name表示属性名称,参数o表示属性的值,
例:request.setAttribute("mess","注册失败")


getAttribute()方法语法:public Object getAttribute(String name)
因为返回值是Object类型,所以在读取数据时,必须将数据转换成最初的类型,
例如:String mess=(String)request. getAttribute("mess");
注意:如果mess不等于null,表示可以得到实际的数据,可以进行使用;如果请求对象没有与参数对应的属性,getAttribute()方法会返回一个null值,所以在使用这个属性值时要做非空判断,否则会出现空指针异常。

9.转发与重定向(页面跳转)
1)、请求转换是服务器内部跳转,所有地址栏上的路径不会改变. 重定向是浏览器在次发送请求,地址栏上的路径会发生改变.
2)、请求转发只发送一次请求。 重定向会发送两次请求
3)、请求转发只能在当前应用内部跳转. 重定向可以在内部跳转也可以跳出当前应用.
4)、请求转发时,因为是内部跳转。它的路径写法是 /资源路径。 重定向,它的路径需要写 /工程名/资源路径. 5)、请求转发,可以共享reqeust。 重定向不可能,因为每一次都是一个新的request。
6)、请求转换是通过reqeust发起 request.getRequestDispatcher().forward(); 重定向 response发起 response.sendRedirect();

7)重定向与转发的选择
--、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
--、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

10.jsp的9大内置对象
详细讲解见:
https://blog.51cto.com/14441795/2422160

11.在域对象存值
域对象一共有四个:pageContext,request,session, servletContext

setAttribute(String name, Object o) 向request域中存放一个映射关系,key为String类型,value为Object 类型
getAttribute(String name) 通过映射关系的key,获取对应的值

pageContext:只在当前页面有效,
Request:一次请求有效,使用同一个request
Session:会话级别,从打开浏览器的那一刻开始,一直到关闭浏览器,之间这段时间称之为一次会话
ServletContext:应用级别,项目级别

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI