javaweb实习报告(共5篇)
javaweb实习报告 篇1
武汉工程大学计算机科学与工程学院
生产实习报告
JavaWeb实习报告
一、实习目的与任务
为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作的意识,了解软件开发的过程和基本流程,以便于帮助我们能够在大四毕业时可找到一份客观的工作,我们在大四刚开学就开始了生产实习。
这次实习的主要任务是Java Web软件开发,学习Java开发中比较典型且经常用到的几个知识,其中包括Jsp、Servlet、Html、JDBC等等,另外,Java开发中也必须要用到数据库,因此实习中还加入了Mysql数据库的学习。掌握了这些基本知识之后,就开始真正的项目开发,而且此次我们所要开发的项目是有关博客页面的项目,并完成老师指定的功能。
二、实习地点
重庆足下科技有限公司
三、实习内容和要求
我们这次实习,在校外也就是软帝公司总共是十天,开始几天基本上是每天学习一个方面的内容,大概学习了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下几天就是项目时间,做出一个博客开发的项目。大致内容如下:
一、Java语言简介
Java语言Java是由Sun微系统公司所发展出来的程序语言,它是一种面向地向的语言,Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的代码,而是产生一种中间码叫作 ByteCode,这种代码必需在透过 Java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。
Java写出来的程序可分为两类,分别是Java Applet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。
Applets类似于应用程序,但是它们不能单独运行,Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。
Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以进行网页开发,其中包括静态语言开发与动态网页开发,可以在网页中加入各式各样的动态效果,可以放上一段动画,加入声音,也可以建立交互式网页等。
二、Html语言
Html是超文本标记语言,它是一种非严格的标记语言,它是web开发的基础,也是制作网页的基础,纯html的页面是静态的。
Html它由head和body两部分组成,所写的内容一般都是放在body中,其中可以添加Form表单域,其中属性 Action表示提交的动作,也就是提交到那个页面,可表示为Action=“http://”;Method属性表示提交的方法,一般为设为post;在Form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan
武汉工程大学计算机科学与工程学院
生产实习报告
Mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。Mysql的Sql指得是“结构化查询语言”,Sql是用于访问数据库的最常用标准化语言。同时,Mysql软件也是一种“开放源码”的软件,意味着任何人都能使用和改变软件。任何人都能从Internet下载Mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。Mysql软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。
Mysql服务器还有一套实用的特性集合,在基准测试主页上,给出了Mysql服务器和其他数据库管理器的比较结果。Mysql支持多种连接,包括TCP/IP、ODBC和JDBC等多种数据库连接途径,而我们此次实习用到的是JDBC数据库连接方法,这一点在下面会讲到。
此次实习我们主要学习了如何在Mysql数据库中建立表格,如何执行Sql语句等等。首先,打开Mysql编写框,执行语句show databases,即可查看Mysql中有哪些数据库,运用create+数据库名语句可建立想要的数据库,运用use+数据库名即可进入对应的数据库。
进入数据库之后,就可以执行数据库中的增、删、查、改等Sql语句了,运用create table +表名(表中所需要的元素),这样就可以建立一张表了,运用desc+表名就可以查看表,运用Sql语句“select * from +表名”就可以查看表中的所有数据,运用“insert into „„”语句可以向表中添加数据;运用“update +表 set „„ Where„„”可以更改表中指定的某项数据;运用“delete +表 where „„”语句可以删除表中的某项数据„„
四、JDBC数据库连接
Java中的JDBC,JDBC是Java Data Base Connectivity的缩写,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
连接数据库的方法有一个模板,代码如下: public class DBManager { private static final String URL=“jdbc:mysql://localhost:3306/test”;private static final String USER=“root”;private static final String PASSWORD=“123”;private static Connection conn=null;
public static Connection getConn(){ try {
if(conn==null){
//注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
conn=DriverManager.getConnection(URL,USER,PASSWORD);
} } catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();}
return conn;} } 以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据
武汉工程大学计算机科学与工程学院
生产实习报告
删除
修改
六、Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。举例如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
1、获取id
String sid=request.getParameter(“id”);
int id=Integer.parseInt(sid);
//
2、根据id查询到对应的学生信息
StuDAO sdao=new StuDAO();
StuDTO stu=sdao.queryStu(id);
//
3、将stu传递到studentModify.jsp页面显示
request.setAttribute(“stu”,stu);request.getRequestDispatcher(“studentModify.jsp”).forward(request,response);我们同样是以学习建立学生信息管理系统为例来学习Servlet的,Servlet与JSP差不多,最主要的差别是JSP是实现普通静态HTML和动态HTML混合编码的技术,Servlet则是web页面和服务器之间的连接物,而这基本上没什么区别。
在编写学生信息管理系统的时候,只不过在昨天编写的基础上,将某些JSP文件运用Servlet表示,像那些只做显示用的JSP页面不做变化,而中间有调用StuDAO中的方法的JSP页面,它们不做显示用,而是要与数据库联系起来,像这些JSP页面就可以转换成相应的Servlet,其中的代码与JSP中的几乎一样,这样处理之后,减少了页面,不过功能没有变化,更加方便了!
四、实习总结及分析
这次实习主要是学习Java Web开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。
首先是JSP,它是Java Web开发的基础,需要的页面都是用JSP来建立的,它是一种
javaWeb总结+小结 篇2
1,从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。2,从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出了要求。
3,从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S却是服务器更新维护一次,客户端就要下载相关的补丁才能使用 4,从安全性来讲,B/S是基于服务器的,较之C/S安全性好
5,从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。
6,从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。
Servlet的使用步骤:
1,创建一个JAVA类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能成为一个Servlet 2,覆写doGet()和doPost()方法
3,最后,在web.xml文件中进行Servlet配置。具体的配置如下:
就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下:
Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。
与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,所以效率低于Servlet 作用:可以用来进行接收客户端的请求,也可以进行请求流的控制。
Http协议:(了解)
首先它是(Hypertext Transfer Protocol)超文本传输协议。
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。
应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。工作流程:
一次HTTP操作称为一个事务,其工作过程可分为四步:
首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。
Javascript的作用:
1,进行验证(通过正则表达式,在css+HTML的部分特性进行浏览器端的格式验证工作)
2,进行交互(将客户端的一个请求通过JavaScript可以发送到服务器端,也可以在浏览器端进行人机的交互,突破了以前静态页面的交互性限制)3,进行特效的处理,如走马灯,时间时钟。
Servlet生命周期:(详细)是指Servlet实例从被创建到其消失(对象销毁,回收)中间的时间及各个阶段,称之为Servlet生命周期。
前提:web服务器加载类。之后执行以下过程:
1,实例化:Servlet容器创建Servlet实例,具体就是当接收到客户端的第一次请求时,Servlet容器负责创建Servlet的一个实例。且在此过程中仅创建一个实例,通过多线程的方式响应客户端的请求
2,初始化:该容器调用init()方法。
3,服务:当请求到达时,该Servlet容器自动调用server()方法,根据客户端发送请求的方式,选择doXxx()方法执行
4,销毁:当web服务器被卸载的时候,调用destroy()方法进行对象的销毁。请看以下的一段代码: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;
public Test(){
super();
System.out.println(“===========================”);
} public void destroy(){
System.out.println(“对象被销毁!”);} public void init()throws ServletException {
System.out.println(“对象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println(“get方法执行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
System.out.println(“服务开始启动了!”);
super.service(arg0, arg1);}
}运行效果如下:
=========================== 对象初始化!服务开始启动了!
get方法执行
2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 对象被销毁!
分析原因:
1,实例化对象发生在客户端请求第一次到达的时候,而不是类被加载的时候。2,对象只被实例化一次.3,如果service()被覆写的话,则调用的时候加入super.service(arg0, arg1);这句话时候才可以清楚的调用的doXxx()方法,如果不加入此句话,那么将不会执行doGet()方法。所以一般不要覆写service()方法。只需要覆写doGet()和doPost()方法。
4,当web服务器被卸载的时候,将执行destroy()方法。进行对象的销毁!
Jsp页面构成元素,Jsp跟Html的区别,优势
Jsp定义:(Java Server Page)Java服务器端语言,组成如下: 1,静态模板:由HTML,css,JavaScript等元素构成。
2,指令:设定网页元素的属性,用于提供这个歌JSP网页的相关信息。
3,脚本元素--声明:<%!...%>,在此之中可以进行变量,常量的定义,类,方法都可以声明,但是一般不用。
4,脚本元素--Java脚本:<%...%>,在此期间可以进行Java代码的拼写。5,脚本元素--表达式:<%=..%>,用于表达式输出时使用。
6,动作:利用JSP动作可以重用JavaBean组件,可以动态的包含页面,也可以进行服务器端的跳转(即将用户的请求转发给其他的页面)。7,注释:
--HTML注释:,此种注释可以在页面中看到,成为客户端注释。--Jsp注释:<%----%>,此种注释在页面中看不到,也成为服务器端注释。--Java注释:
单行注释:// 多行注释:/*„„„*/ Jsp优点:使用HTML,CSS等技术构建页面的模板部分,用Java语言根据用户的输入动态生成可变的内容部分。既可以实现HTML控制页面布局,也亦可以实现Servlet的功能,实现了内容与表示分离。Jsp的常见指令,并说出静态包含和动态包含的区别
Page指令:<%@ page language=”java” import=” 完整的包.类名称” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(设置是否能多线程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp页面中引入用户自定义的标签库。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 静态包含跟动态包含的区别:
<%@ include file=”文件名%>,此包含属于静态包含,是指先将文件包含进来然后在进行编译,编译后生成的class文件中,被包含的文件在静态块中。且此种包含不允许带参数。
Jsp常见的动作,调用JavaBean相关:
输入/输出对象
request:表示客户端对网页的请求
response:用于处理Jsp生成的响应,使用Http协议将响应发送给客户端。
out:表示从response中取得的输出流。常用的方法有write(),print(),println()等,用于在页面中输出文本形式的响应内容 作用域通信对象
pageContext:此通信对象的作用域仅在当前页面有效,一旦跳转则不可用
request:此通信对象的作用域针对的同一个客户的请求,如果不是同一个请求则不可以使用
session:此通信对象的作用域适用于一次会话,即打开的同一个浏览器的所有页面都可以适用
application:此通信对象的作用域适用于基于WEB服务器的所有会话,适用于监听器 Servlet对象
page:指向当前Jsp页面经过转译(jsp.java文件),编译(.java文件.class文件)后的对象本身,即编译后的Servlet对象本身
config:是在一个Servlet初始化时,服务器向它传递的初始化信息。初始化信息可以在web.xml中找到。错误对象
execption:表示Jsp页面运行时抛出的异常对象,可以在专门准备的错误处理页面中访问这个异常对象。
Jsp执行过程:
jsp文件转译:当客户端请求一个正确的Jsp文件时,将Jsp—>.java文件(即将Jsp文件翻译成相应的Servlet类的源文件)编译:.java文件.class文件,即将Servlet类的源文件进行编译成为.class的Servlet文件。调用Servlet的service()方法响应用户的请求。
描述Jsp和Servlet的区别,共同点,各自的应用范围:
1,从发展上来看,Jsp可以避开Servlet的输出页面的繁琐步骤,它集合了HTML和Servlet的优点。
2,从本质上来说,Jsp是Servlet的扩展,它是Servlet的简易形式。Jsp经过转译之后就成为了类Servlet。
3,从创建方式上来说:Jsp由HTML代码和JSP标签构成,而Servlet则完全是由程序代码构成擅长于流程控制和事务处理的类
4,从使用角度来说:在MVC中,Jsp担任的是VIEW层,侧重于视图,而Servlet则充当的控制层,侧重于控制逻辑。请求转发和重定向
response.sendRedirect():利用response对象向客户端发回一个响应指示其访问其他URL资源,或者说是一个web组件向另一个web组件发送一个新的请求,属于重定向,地址栏有变化。且不可以传递属性request参数,当所有的代码执行完之后才进行重定向。
request.getRequestDispatcher().forword(req,resp):web组件将一个请求转发给另一个web组件,他们始终是同一个请求,在此期间可以传递request属性参数,地址栏没有变化。且一执行到此代码处,后边的将不再执行
JavaBean的组成:
类必须是具体的,公共的。提供无参数的构造方法
javaWeb学习[小编推荐] 篇3
2010-12-14 22:51
Session(会话)
Session对象
1、存在于服务器端
2、依赖于线程
3、Session的生命周期,跟一次浏览器窗口有关,只要窗口不关闭,Session便存在,所以称会话。
Session1、技术内核使用cookie:
session参在与服务器端
服务器端为多个session创建不同的session id
把session id以cookie的形式送入到客户端
request.getSession()内涵是:在cookie中查找
session id,若cookie中存在sessionId,则根据
sessionId,将sessionID对应的session找到,并返回;若cookie中并不存在sessionID,服务器端创建session,并将sessionID写入到Cookie中。
2、当关掉对话窗口(结束一次会话)时,session并没有被删除,只是关掉对话窗口时,cookie被清空
无法再获得sessionID,无法找到对应的session,但是session还是存在于服务器端。
若想真正删除session,需要调用HttpSession中的invalidate()方法,使得session失效。
3、服务器为了考虑效率,不会让无用的session存在很久,Http协议是无连接协议,服务器端无法判断客户端是否关闭“会话”,所以服务器设置了失效时间。若用户在了段时间内,不操作session,则系统删除session。
我们可以设置此时间setMaxInactiveInterval(),但不推荐用户自行设置。
4、session技术在很大程度上,依赖于Cookie,若Cookie被禁用,或浏览器不支持Cookie,则session就无法使用。
5、为了解决第四点所引申的session不可用的问题。我们使用URL重写,将sessionID通过地址栏提交参数,发给服务器端。
使用response.encodeURL()在地址栏中加载sessionID通过
request.getParameter(jsessionid)得到sessionID
a、String url encodeURL(String url);通过超链接,重新发出请求,此请求会在地址之后自动加上sessionID及其ID值,此方法又被子称为URL重写,或重新封装。
b、String url encodeRedirectURL(String url);将地址封装成sendRedirect方法所需要的地址,并在此地址后加入sessionID
Servlet API小结:
HttpServletRequest:接口
1、setAttribute()、getAttribute()、getAttributeNames
getParameter()//只能获得表单中的内容
2、getCharacterEncoding()、setCharacterEncoding()
获得、设置request中的数据编码方式
3、getContentType()得到MIME,即IE文件打开的方式
4、Cookie[] getCookies()
得到当前所有的cookie5、getSession()
获得或创建session6、getRequestDispatcher(String path)将目标页面封装,为了forward()进行页面转向。
7、getRequestedSessionId()得到一个session的id
总结:
request对象封装了客户端的请求和相关信息。
包括:
1、cookie2、封装http协议的报头(请求方式、请求服务器的端口、请求服务器ip地址、编码方式、请求的项目用的名字、请求消息的长度、浏览器的信息、客户端信息„„)
3、表单数据
HttpServletResponse:接口(响应)
用它跟客户端联系,并且向客户端发送数据
1、getCharacterEncoding()得到向客户端发送数据的默认编码方式。
2、getContentType()得到向客户端发送数据的默认类型(html或者jpeg等等)。
3、getOutputStream()得到与客户端建立的输出字节流,传输二进制。
4、getWriter()得到与客户建立的输出字符流,传输文本文件。
5、setCharacterEncoding()设置的是要发送给客户端的数据的编码方式。
6、setContentType(String type)设置并告知客户端,执行这些二进制时,用何种类型打开(html、jpeg等等)。
7、addCookie(Cookie cookie)将cookie的键和键值成对的送到客户端
8、一些的set方法用来指定客户端运行时的一些属性。例:缓存、打开方式、消息头的控制等等
9、encodeURL(String url)、encodeRedirectURL(String url)**在地址后追加session的id,用来实现cookie被禁用后,session依然可以使用。
10、sendRedirect(String location)页面的重定向
Cookie:类
1、Cookie(String name,String value)创建Cookie并将键,键值,存入到Cookie中
2、getMaxAge(int)设置Cookie的生命服周期,当参数是负数时:窗口(会话)被关掉时,清空Cookie3、getName()获得Cookie中的键
4、getValue()获得Cookie中的健值
HttpSession:接口
1、getAttribute(String name)、setAttribute(String name)
2、getId()获得session的唯一标识id3、getMaxInactiveInterval()、setMaxInactiveInterval()得到和设置session的失效时间
4、invalidate()使得session失效
5、isNew()布尔类型,判断session是否是新创建的HttpServlet:类
1、doGet(HttpServletRequest req,HttpServletResponse resp)
当用户以get方式发出请求时,servlet调用此方法
2、doPost(HttpServletRequest req,HttpServletResponse resp)当用户以post方式发出请求时,servlet调用此方法
3、public void init()throws ServletException
用户第一次请求servlet的时候,容器需建立servlet对象,同时调用init()方法
4、service(ServletRequest req,ServletResponse res)
开辟多线程,并根据用户提交的方式,选择调用doGet()还是doPost()方法
JavaWeb工程师笔试题题目 篇4
1) JSP注释标记
2) HTML注释
3) JAVA注释 // /星符号/
请分别对它们简单描述一下
2. JSP的page指令常见的属性都有哪些?
Language, contentType, import, errorPage, isErrorPage, extends, session, info, isThreadSafe, buffer, autoflush
3. 假设需要在一个JSP页面里导入java.util.List, java.util.ArrayList, java.io.File,语句应该怎么写?
5. JSP的include指令和include操作有什么区别?
1) 语法结构不同
2) include指令更适合于包含静态页面, include操作更适合于包含动态页面
3)include操作还带有参数 flush=”true|false”
6. 请分别描述一下forward和redirect的区别
1) 使用forward浏览器地址栏不变,redirect浏览器地址栏会改变
2) Forward效率较高
3) Forward可以使用request.getAttribute获取数据,而redirect不可以
7. 在Servlet和JSP里是如何实现 forward和redirect的? 例如要跳转去一个test.jsp页面。
//Servlet
RequestDispatcher rd = this.getServletContext.
getRequestDispatcher(“/test.jsp”);
rd.forward(request, response);
response.sendRedirect(“/test.jsp”);
//JSP
response.sendRedirect(“/test.jsp”);
8. jsp主要内置对象有?
request、response和out,还有exception、session、application、config、pageContext和page
9. 在JSP里,我们可以怎样获取来自客户端请求的IP地址?
Request.getRemoteAddr;
10. 有一个用户名 test, 密码 12345, 请编写一段创建COOKIE的JSP代码, 然后再编写一段读取COOKIE的JSP代码, 在页面上将COOKIE的信息显示出来。
String str = “username= test&password=12345”;
Cookie cookie=new Cookie(“mycookie”, str);
response.addCookie(cookie);
Cookie cookies=request.getCookies;
For(int i=0;i< cookies.length;i++){
Out.print(cookies.getName+”=”+ cookies.getValue);
javaweb实习报告 篇5
下面是一个简单的EJBClient.java代码
packagecom.zuijiajiao.Servlab.HelloWorld.test;
importjava.util.Properties;
importjavax.naming.InitialContext;importjavax.naming.NamingException;
importcom.zuijiajiao.Servlab.HelloWorld.HelloWorld;
publicclassEJBClient {
} publicstaticvoid main(String[] args){
} Properties props = newProperties();
props.setProperty(“java.naming.factory.inital”,“org.jnp.interfaces.NamingContextFactory”);props.setProperty(“java.naming.provider.url”, try {
InitialContextctx = newInitialContext(props);HelloWorld helloWorld =(HelloWorld)ctx.lookup(“HelloWorldBean/remote”);
“localhost:1099”);System.out.println(helloWorld.sayHello(“电子科大”));} catch(NamingExceptione){
} // TODO: handle exception
System.out.println(e.getMessage());其中,红色突出部分代码就是用于设置JNDI的上下文信使。
props.setProperty(“java.naming.factory.inital”,这句代码用于设置JNDI的链接工厂,第一个参数,是固定的写法,有JNDI规范所规定,第二个参数就是JBoss的链接工厂; 于是,JNDI通过这个链接工厂就可以和JBoss进行通信了;
props.setProperty(“java.naming.provider.url”, “localhost:1099”);这句代码用于设置命名服务器的链接URL 第一个参数是固定的写法,有JNDI规范所规定,第二个参数就是JBoss的连接字符串 JNDI通过JBoss的连接字符串就可以知道JBoss它所在的地址,还有它所使用的端口号
“org.jnp.interfaces.NamingContextFactory”);如果访问不同的服务器,那两句代码设置的参数值也是不一样的设置完JNDI的上下文信息后,就可以调用它的lookup方法,根据EJB的JNDI名称(“HelloWorldBean/remote”),去寻找与这个名称绑定(Bind)的EJB代理存根对象,找到代理存根对象之后,他就可以返回到客户端(Client)。在客户端,通过接口文件去引用这个代理存根对象
HelloWorld helloWorld =(HelloWorld)ctx
.lookup(“HelloWorldBean/remote”);通过这个这个代理对象(helloWorld)就可以调用EJB的业务方法。
疑问:如何知道EJB的JNDI名称?
速度当EJB部署到JBoss应用服务器的时候,JBoss服务器可以为EJB默认生成一个JNDI名称
默认生成JNDI名称的规则
注意事项:
Properties props = newProperties();
props.setProperty(“java.naming.factory.inital”,“org.jnp.interfaces.NamingContextFactory”);props.setProperty(“java.naming.provider.url”, “localhost:1099”);用这种方式来设置JNDI的上下文信息,属于“硬编码”设置,也可以通过一个属性文件(xxx.properties)来设置JNDI的上下文信使
通过属性文件来设置JNDI的上下文信使的方法:
在项目的类路径下建立一个名叫JNDI的属性文件(JNDI.properties)(也可以在源目录(src)下建,因为在源目录下建也是可以编译到项目的类路径下)JNDI属性文件代码如下
java.naming.factory.inital = org.jnp.interfaces.NamingContextFactory java.naming.provider.url = localhost:1099
有了属性文件之后,代码就可以这样写了
packagecom.zuijiajiao.Servlab.HelloWorld.test;
importjava.util.Properties;
importjavax.naming.InitialContext;importjavax.naming.NamingException;
importcom.zuijiajiao.Servlab.HelloWorld.HelloWorld;
publicclassEJBClient {
}
原理:
InitialContextctx = newInitialContext();
在new InitialContext这个对象的时候,在InitialContext的构造函数内部他在项目的类路径下寻找这个属性文件 publicstaticvoid main(String[] args){
} try {
InitialContextctx = newInitialContext();HelloWorld helloWorld =(HelloWorld)ctx.lookup(“HelloWorldBean/remote”);
System.out.println(helloWorld.sayHello(“电子科大”));} catch(NamingExceptione){
} // TODO: handle exception
【javaweb实习报告】推荐阅读:
Javaweb课程08-03
javaweb大型课程设计09-01
翻译实习报告实习报告07-07
企业认知实习实习报告08-30
最新实习医师实习报告07-22
化工仿真实习实习报告08-28
临床实习护理实习07-31
到中学实习的实习报告06-05
毕业实习报告:电机公司实习06-13
机关单位实习的实习报告07-02