jsp上传文件如何实现(jsp获取上传文件名)

本书简介 书名为《轻量级JavaEE企业应用实战》,是本人在学习JavaEE框架的时候阅读的第一本书,本书对于框架及相关基础知识讲述的比较详细和浅显,适合初学者和需要全面了解JavaEE知识的人群。 本文内容为第二章的第1部分内容 WEB应用和web.xml 1.构建WEB应用 使用IDE创建项目?当然可以。但我们今天来学学不用IDE如何创建一个WEB应用。步骤如下: (1)在任意目录下新建一个文…

这书介绍

小说名字为《轻量级JavaEE企业应用实战》,是我本人在学习培训JavaEE架构的情况下阅读文章的第一本书,这书针对架构及相关基本知识叙述的非常完整和易懂,合适新手和必须全方位掌握JavaEE专业知识的群体。

文中內容为第二章的第1一部分內容

JSP/Servlet相关技术详解--那些已经模糊的基础知识

WEB运用和web.xml

1.搭建WEB运用

应用IDE创建新项目?当然可以。但大家现在来学习不用IDE怎样创建一个WEB运用。流程如下所示:

(1)在随意文件目录下新创建一个文件夹做为运用网站根目录,小编以webDemo文件夹创建一个web应用

(2)在运用根目录下创建一个WEB-INF文件夹(区别大小写字母)

(3)进到Tomcat中寻找任意一个默认设置WEB运用,将其WEB-INF下的web.xml文件拷贝到自身所创建的相匹配文件夹下

(4)配备web.xml文件(PS:相关配置我能另发表文章解读)

<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_3_1.xsd\"
  version=\"3.1\" metadata-complete=\"true\">
</web-app> 

(5)在WEB-INF文件目录下,新创建2个文件夹:classes和lib,这两个文件夹全是用以储存WEB运用需要的Java类文档,差别是classes储存单独class文件;lib储存装包后的JAR文档

(6)现在已经创建了一个空WEB运用。将该应用拷贝到Tomcat的webapps路径下

(7)将JSP文件放到WEB运用的根途径下,就可以利用网页来浏览这种网页页面了,URL途径:
http://localhost:port/webDemo/*.jsp

如上所述,WEB运用的文件目录构造如下所示:
<webDemo>
|--WEB-INF
|			|--classes
|			|--lib
|			|--web.xml
|--*.jsp

2.配备描述符web.xml

web.xml文件被称作配备描述符,在Servlet2.5以前,WEB运用务必含有一个web.xml文件,且务必放到WEB-INF途径下。WEB-INF是个独特的文件夹,WEB器皿会包括该文件夹下的內容,但电脑浏览器无法打开WEB-INF下的其他內容。

PS:针对Servlet3.0标准来讲,web.xml不会再是一定的,但通常或是提议保存

web.xml可以完成以下的全部配备作用

(1)配备JSP

(2)配置Servlet

(3)配备Listener

(4)配置Filter

(5)配备标识库

(6)配备JSP特性

(7)配备JAAS受权验证

(8)配备資源引入

(9)配备WEB运用主页

JSP基本概念

JSP/Servlet相关技术详解--那些已经模糊的基础知识

JSP文件务必在JSP网络服务器内运作JSP文件务必形成Servlet才可以实行每一个JSP界面的第一个来访者速率比较慢,由于务必等候JSP编译成ServletJSP网页页面的来访者不必安裝任何的手机客户端,乃至不用可以运作Java的软件环境,由于JSP网页页面传至手机客户端的是规范HTML网页页面JSP页面內容包括2个一部分:静态数据一部分(HTML标识及静态数据內容)、动态性一部分(受Java系统控制的內容)JSP网页页面会被Tomcat在work编译成2个文档:*_jsp.java,*_jsp.class。此文档是一个规范Servlet类

JSP注解

JSP注释不容易輸出到手机客户端,文件格式如下所示:

<%-- 注解內容 --%>

JSP申明

JSP声明用以申明自变量和方式

<%! 申明一部分 %>

JSP輸出

<%=关系式%>

PS: 表达式后无法有分号,实际效果相当于out.println

JSP脚本制作

<% 编码 %>

PS:JSP脚本制作中的內容,将做为Servlet中service方式的方法体。因而之中申明的自变量为静态变量,而且不能在代码中定义方法

JSP的编译程序命令(3个)

编译程序命令文件格式如下所示

<%@ 编译程序命令 特性名=\"属性值\"...%>

1.page:是应对现阶段网页的命令,坐落于网页页面顶部

JSP/Servlet相关技术详解--那些已经模糊的基础知识

特性表明:

language:申明JSP网页页面应用的开发语言,默认设置java
extends:特定JSP编译程序后的类所承继的成员变量或插口
import:用于导进包,默认设置导进的包有:java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.serlvet.http.*
session:设定现阶段网页页面是不是必须session
buffer:特定輸出缓冲区域尺寸。輸出缓冲区域用以JSP内部结构目标out,默认设置8KB
autoFlush:当輸出缓冲区域将要外溢时,是不是必须强制性輸出缓冲区域的內容。true正常的輸出,false造成出现异常
info:设定JSP程序流程表明,根据Servlet.getServletInfo()获得该值
errorPage:特定处理错误网页页面。假如网页页面出错,且未做错误处理,则自动跳转处理错误网页页面
isErrorPage:设定本JSP网页页面是不是为处理错误网页页面
contentType:用以设定网页页面的格式和编号字段名。默认设置MIME种类为text/html;默认设置字段名为:ISO-8859-1
pageEncoding:设定网页页面的编号字段名

2.include:特定包括另一个网页页面

英语的语法如下所示:

<%@include file=\"绝对路径\"%>

include命令可以将外界文档置入现阶段网页页面,这也是静态数据include句子,它会把总体目标网页页面的别的编译程序命令也包括进去。即先把总体目标网页页面的编码融进现阶段网页页面后再编译程序。

PS:假如被包括的网页页面必须常常更改,提议应用<jsp:include>,它是动态性include句子

3.taglib:客户界定和浏览自定义标签

JSP的姿势命令(7个)

jsp:forward:实行网页页面转为,将要求发送到下一个网页页面
jsp:param:用以传送主要参数,务必与别的适用主要参数的标识一起应用
jsp:include:动态性导进JSP网页页面
jsp:plugin:用以免费下载JavaBean或Applet到手机客户端实行
jsp:userBean:创建JavaBean案例
jsp:setProperty:设定JavaBean案例的人物属性值
jsp:getProperty:获得JavaBean案例的人物属性值

1.forward命令

用以网页页面分享,可转发到静态网页、动态性网页页面或Servlet。分享后的要求主要参数不容易遗失。

英语的语法如下所示:

<jsp:forward page=\"绝对路径\">
    <jsp:param name=\"key\" value=\"value\"/>
</jsp:forward>

分享时可根据param命令传送主要参数,并根据以下方法获得值:

<%=request.getParameter(\"key\")%>

2.include命令

动态性的网页页面导进指令,它不容易导进被包括网页页面的编译程序命令,仅将被导进网页页面的body內容插进本页。

英语的语法如下所示:

<jsp:include page=\"绝对路径\" flush=\"true\">
    <jsp:param name=\"key\" value=\"value\"/>
</jsp:include> 

flush特性设定輸出缓存文件是不是迁移到被导进文档中,true则包括在被导入文档中,false则包括在源文件中。

动态导入和静态导入的差别
(1)静态导入是将被导入页面的源代码彻底融进,2个页面结合成一个Servlet;而动态导入则在Servlet中应用include方式来引入被导入页面的內容
(2)静态导入时被导入页面的编译程序指令会起功效;而动态导入时被导入页面的编译程序指令则丧失功效
(3)动态导入可以传送超额的主要参数

3.useBean、setProperty、getProperty指令

这三个指令全是JavaBean有关指令。在大家将反复编码界定成Java类的方式 后,这三个指令可用以启用。

useBean英语的语法如下所示:

<jsp:userBean id=\"name\" class=\"classname\" scope=\"page|request|session|application\"/>
id:是JavaBean的实例名
class:特定JavaBean的完成类
scope:特定JavaBean案例的功能范畴,page(现阶段页面合理)、request(此次要求合理)、session(此次对话合理)、application(现阶段运用一直合理)

setProperty英语的语法如下所示:

<jsp:setProperty name=\"BeanName\" property=\"propertyName\" value=\"value\"/>

getProperty英语的语法如下所示:

<jsp:getProperty name=\"BeanName\" property=\"propertyName\"/>

举例说明,如下图:

JSP/Servlet相关技术详解--那些已经模糊的基础知识

4.param指令

param指令没法直接应用,可以与如下所示指令融合应用:

(1)jsp:include

(2)jsp:forward

(3)jsp:plugin

JSP内嵌目标(9个)

application:ServletContext案例,意味着隶属WEB运用自身
config:ServletConfig案例,意味着运用配备信息内容
exception:Throwable案例,意味着别的页面的出现异常,仅有现阶段页面是处理错误页面时可以用
out:JspWriter案例,意味着页面輸出流,用以輸出內容
page:意味着页面自身,及产生的Servlet类
pageContext:PageContext案例,意味着页面前后文,可浏览页面的共享资源数据信息
request:HttpServletRequest案例,该目标封装形式了一次要求和请求主要参数
response:HttpServletResponse案例,意味着网络服务器回应
session:HttpSession案例,意味着一次对话。当电脑浏览器与网站创建联接时,会话开始;关闭浏览器的时候会话完毕

PS:JSP内嵌目标要不是Servlet方式的静态变量,要不是方式的形参,因此我们可以同时在代码中启用她们。

1.application目标

application两个作用

  • 在全部WEB运用中让好几个JSP、Servlet中间分享数据信息(应用setAttribute,getAttribute)
  • 浏览WEB运用的配备主要参数(应用getInitParameter)

2.config目标

用以Servlet获得配备主要参数(应用getInitParameter)

3.exception目标

exception对象仅在错误处理页面合理

4.pageContext目标

应用pageContext可以浏览page、request、session、application范畴的自变量

getAttribute(String name):获得page范畴内的特性
getAttribute(String name, int scope):获得特定范畴内的特性,
scope包括PageContext.PAGE_SCOPE、PageContext.REQUEST_SCOPE、PageContext.SESSION_SCOPE、PageContext.APPLICATION_SCOPE
setAttribute(String name, String value):设定page范畴内的特性
setAttribute(String name, String value, int scope):获得制订范畴内的特性

应用pageContext可以得到别的内嵌目标

getRequest():获得request目标
getResponse():获得response目标
getServletConfig():获得config目标
getServletContext():获得application目标
getSession():获得session目标

5.request对象

(1)获得请求头/要求主要参数

getParameter(String paramName):获得要求主要参数的值
getParameterMap():获得全部要求主要参数名合值构成的Map目标
getparameterValues(String name):获得要求主要参数好几个值时所构成的二维数组
getHeader(String name):获得特定的请求头的值

GET与POST

GET方法的要求:GET请求会将要求主要参数的名合值转化成字符串数组,并额外在原URL以后,URL和主要参数中间以”?”隔开,好几个主要参数中间以”&”隔开,且要求传递的信息量较小,一般不得超过2KB

POST方法的要求:POST请求主要参数的尺寸不受到限制,通常在于网络服务器的限定,POST传送的信息量比GET传送的信息量大,且要求主要参数放到HTTP HEADER中传送,安全系数相比较高

PS:

(1)并不是每一个表格域都是会形成要求主要参数,仅有含有name特性的表格域才行

(2)每一个有name特性的表格域相匹配一个要求主要参数

(3)如果有对个表格域有一样的name特性,则好几个表格域只形成一个要求主要参数,且该参数有好几个值

(4)表格域的name特性为要求主要参数名,value特性为要求变量值

假如表格域设定了disabled=”disabled”特性,则不容易形成要求主要参数

(2)实际操作request范畴的特性

setAttribute(String name, Object value):设定request范畴特性
getAttribute(String name):获得request范畴特性

(3)实行forward或include

getRequestDispatcher(String path).forward(request, response):自动跳转页面
getRequestDispatcher(String path).include(request, response):包括页面

6.response目标

(1)response回应形成非标识符回应

getOutputStream():获得輸出流

(2)跳转

sendRedirect(\"path\"):重定向,跳转会遗失全部要求主要参数

forward与redirect比照

JSP/Servlet相关技术详解--那些已经模糊的基础知识

(3)提升cookie

addCookie(Cookie cookie):增加cookie
getCookies():获得cookie二维数组

7.session目标

seesion代表一次客户对话,即手机客户端电脑浏览器连接网络逐渐,到关闭浏览器完毕。session特性可在一次对话本质好几个页面间分享数据信息。session特性值一定是可实例化的Java目标。

setAttribute(String attName, Object attValue):设定session特性值
getAttribute(String attName):获得session特性值

异议与思索

大家日常开发设计常常应用电脑浏览器来浏览WEB运用,IE、360、火狐、Google你觉得哪个电脑浏览器最好用?为什么呢?发表评论留言板留言吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月11日 上午10:45
下一篇 2022年5月11日 上午10:45

相关推荐

  • 苹果下载铃声软件哪个好用,有了这个软件随时随地切换铃声

    其实之前分享过一次,今天结合全系统的教程再次分享一下,这2个方法适合iPhone所有系统的手机 iOS12.1或更高版本的系统 第一步 首先我们需要在AppStore下载两个APP 1.库乐队(需要iOS12.1或更高版本才能下载) 2.手机铃声制作 第二步 打开手机铃声制作App,可以在线搜索铃声,也可以截取视频的声音作为铃声(比如抖音的任意视频) 搜索到歌曲后,点击右边的下载按钮 第三步 敲黑…

    2022年9月30日
    410
  • 宝妈赚钱的方法有哪些,2020年适合宝妈挣钱路子

    2020年,这波新型冠状病毒阻挡了多少人的回家之路和上班之路。 还没复工的各位小伙伴是不是都有点焦虑? 人在家中坐,锅从天上来。现在不是锅来,是账单飞来。人在老家,钱却在自己工作的大城市燃烧。房租费,水费,电费,鸭梨很大啊。 那么,有没有呆在家里就可以赚点钱的方法呢?当然有啦,现在就整理一下,看看有没有适合自己的赶紧走起! 百度搜索百度知道合伙人 在百度搜索百度知道,然后入住这个百度的下属平台,就…

    2022年8月25日
    740
  • 农村办什么厂能赚钱,这4个适合在农村做前景可观

    我国是传统的农业大国,其涉及的农产品可以说是数不胜数,随着近些年国家对于农产品加工项目的补贴以及市场上对于农产品需求的多元化,可以说要想实现经济效益的突破,农产品加工项目在其中起到了至关重要的作用。但是由于目前我国精深加工领域技术上能力较为薄弱,技术性人才也较为匮乏,所以我国的农产品加工项目发展还有很长一段路要走。下面惠农网小编就为大家推荐四种目前前景不错的农产品加工项目,希望大家也能重视农产品加…

    2022年8月20日
    520
  • 如何做微信公众号,个人免费公众号申请教程

    最近有许多人在问怎么注册微信公众号,今天我就给大家做一个注册微信公众号的教程。 微信公众平台(公众号),是一个给个人、企业和组织提供业务服务与用户管理能力的服务平台。可发布文章推送给粉丝阅读,也可使用各种微信提供的功能(门店小程序、会员卡优惠券、微信小店、微信连接WIFI等)和开发能力。 首先我们搜索“微信公众平台”,点击搜索结果进入微信公众平台页面,并点击左上角“立即注册”,随便选择订阅号或服务…

    2022年7月23日
    430
  • 电脑模式怎么设置,手机一键变电脑的方法

    随着智能手机功能的发展,越来越多人都开始用手机办公了,手机办公可以随时随地处理工作,很大程度上提升了工作的效率,那么大家知道华为手机的电脑模式吗?像Mate10或者P20系列都支持PC模式哦!那么我们究竟能通过一部手机完成什么事情呢?让我们一起来看看吧~ 1、电脑模式的开启, 开启电脑模式的方法很简单,只要用转接线或者一些智能手机扩展底座来连接手机和电脑、电视、投影仪等设备就可以了,然后在手机通知…

    2022年7月14日
    680
  • 光学变焦手机有哪些(光学变焦最强手机推荐)

    自从华为被断货后,高端机市场已经变得很低迷了,主要是没有5G射频可用,推出的华为P50Pro虽然综合配置不差,美中不足的就是没有5G网络,六七元的手机,没有5G网络,很多网友也是望而却步,因此目前在全球高端机市场,还是以苹果和三星为主。 三星最能打的高端机(不算折叠屏手机)莫过于GalaxyS21Ultra了,这款手机在双十一降价幅度很大,12GB+256GB版原本发布价为9699元,在双十一期间…

    2022年5月6日
    2400
  • 什么网游比较赚人民币,网络游戏赚人民币排行

    相信NBE这里有很多和我一样的人吧?走过南,闯过北,漂泊几年,啥都干过,外面世界的精彩见识过了!理所当然的回家结婚,生孩子,不想出去打工了,赚不了多少钱不说,不能和家人一起生活是最不能忍的,于是想在家里找个能赚钱养家的门路,于是第一个想到了网上打游戏赚钱,那么,问题来了,什么网游可以赚人民币呢? 由于本人之前做过dnf刷金,一个月也能赚个2000多块钱,有点游赚经验,所以打算入这行了。近期测试了几…

    2022年8月11日
    550
  • hhkb键盘为什么那么贵,简述hhkb键盘的配置与优点

    笔者最近入手了HHKB键盘,这款键盘在IT业内是有光环加持的,一是顶着“程序员神器”与“Emacs/Vim之友”的光环,二就是它的价格光环,让人不敢轻易靠近,第三是它的键位布局,各其它同类相比完全就是一个“非主流”。 为什么买HHKB “说服自己不买一件东西只需要一个理由,说服自己买一件东西可以制造万千个理由”。 在一块键盘上投资2000块钱,对于不少中国人来说觉得不值。但在我的看来,一件东西只要…

    2022年7月22日
    5010
  • 小程序如何上线,微信小程序上线步骤

    企业现在对小程序的重视程度都特别高,可以说小程序代表了未来企业的发展方向。企业如果错过了小程序,真的会失去一个新的发展机会。要想做好小程序,企业首先就要保证小程序顺利上线。如果小程序都无法上线,即使有再好的企业发展机会也没用。 要想通过小程序获得更多的用户和流量,企业就要了解小程序上线的步骤。只有保证小程序顺利上线,企业才能够通过小程序获得更多的用户和流量。在无法保证小程序上线的情况下,企业是无法…

    2022年5月25日
    650
  • 微信公众号怎么开通,个人免费公众号申请详细方法

    昨日下午四时,我收到了公众平台的信息,是关于微信公众号开启新的认证方式,面向个人类型公众号,需申请审核,申请免费。 有微信公众号的朋友们都知道,微信认证是需要交费300元的,但个人类型的公众号暂时不能再通过交费认证了。 看完信息,立马打开电脑开始申请,需要填写认证资料。 个人称呼:系统直接锁定了注册者账户的名字。 内容分类:有很多,但是是指大范围的,我想选情感,但只有两性情感,所以我选择了文学。 …

    2022年7月27日
    540

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信