Java前端知识之JSP

一、JSP内置对象session、application与Servlet技术

1.内置对象session

session的作用域:当使用浏览器访问Web服务器时、会创建一次会话(即session)、我们可以向session中存储信息,而这些信息在我们断开服务器之前都是有效的。

-向session中存储数据

~~session.setAttribute(“key”,“value”);

-从session中获取数据

~~Object obj = session.getAttribute(“key”);

~~返回值类型为Object,需要强转成我们需要的类型。

2.内置对象application

application

是应用级别的对象,在整个应用程序拥有唯一作用域,如果存在多个session,则各个session之间公用一个application

-向application中存储数据

~~application.setAttribute(“key”,“value”);

-从application中获取数据

~~Object obj = application.getAttribute(“key”);

~~返回值类型为Object,需要强转成我们需要的类型。

3.Servlet技术

创建一个servlet

1)首先将开发透视图切换到Java EE

2)点击创建一个servlet

3)输入servlet名称

4)点击【Finish】

创建完成后、会在web.xml中自动生成servlet映射

--<servlet>与<servlet-mapping>是成对出现的

--如果包含多个servlet,两个<servlet-name>标签值相同的<servlet>与<servlet-mapping>为一对。如下:

<servlet>

     <description></description>

     <display-name>HelloServlet</display-name>

     <servlet-name>HelloServlet</servlet-name>

     <servlet-class>com.FreeLee.Servlets.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

     <servlet-name>HelloSetvlet</servlet-name>

     <url-pattern>/HelloServlet</url-pattern>

</servlet-mapping>


Servlet:

是server applet的组合,指运行在服务端的应用程序,servlet最广泛的应用是接收客户端表单请求,并给出响应。

可以在form表单action属性上指定servlet的映射名称,来请求目标servlet。

servlet使用请求转发和重定向两种跳转方式响应用户的请求。

二、JSP文件上传技术、文件写入数据表、页面相对路径

1.JSP文件上传

通过表单上传文件

--表单enctype属性设置为multipart/form-data

--使用<input type = " file "/>标签

--接收时会得到一个输入流,可根据需要将输入流写入目录

DiskFileItemFactory factory = new  DiskFileItemFactory();

ServletFileUpload upload = new  ServletFileUpload(factory);

FileItemIterator iter = upload.getItemIteraort(request);

InputStream  input = iter.next().openStream();

2.文件写入本地磁盘

使用FileOutputStream指向磁盘文件(例:Freelee)

FileOutputStream output = new FileOutputStream("c:/Freelee.doc");

byte[] buffer = new byte[512];

int length = 0;

whlie ((length = input.read(buffer)) > 0){

       output.write(buffer,0,length);

}

output.close();

input.close();

3.文件写入数据库

使用setBinaryStream方法存储二进制数据

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql'//localhost:3308/mingtian10";

Connection conn = DriverManager.getConnection(url,"root","mysql");

String sql = "insert into mt(code,name,image) values (?,?,?)";

preparedStatement pstmt = conn.prepaerStatement(sql);

pstmt.setInt(1,100);

pstmt.setString(2,"zhangsan");

pstmt.setBinaryStream(3,input,input.available());

pstmt.execute();

4.上传文件显示的相对路径问题

上传文件后,需要使用相对路径将图片显示到页面

--request.getContextPath()获取项目根目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,754评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,356评论 11 349
  • 写后记:2017/11/22最近因为吉趣项目需要做校园网的课表、成绩查询功能,不得不使用模拟请求,去请求uims教...
    大海画家阅读 1,256评论 0 2
  • 最近特别火的欢乐颂,每个人都有自己喜欢的角色,也能在里面多多少少看到自己的影子,我个人十分喜欢安迪,就像当时小时代...
    S的异想天开阅读 257评论 0 0