zoukankan      html  css  js  c++  java
  • 第六周作业 略谈jsp

    1jsp有哪些内置对象?作用分别是什么

    :JSP共有以下9种基本内置组件(可与ASP6种内部组件相对应): 

    request 用户端请求,此请求会包含来自GET/POST请求的参数 

    response 网页传回用户端的回应 

    pageContext 网页的属性是在这里管理 

    session 与请求有关的会话期 

    application servlet 正在执行的内容 

    out 用来传送回应的输出 

    config servlet的构架部件 

    page JSP网页本身 

    exception 针对错误网页,未捕捉的例外 

    2jsp有哪些动作?作用分别是什么

    :JSP共有以下6种基本动作 

    jsp:include:在页面被请求的时候引入一个文件。 

    jsp:useBean:寻找或者实例化一个JavaBean。 

    jsp:setProperty:设置JavaBean的属性。 

    jsp:getProperty:输出某个JavaBean的属性。 

    jsp:forward:把请求转到一个新的页面。 

    jsp:plugin:根据浏览器类型为Java插件生成OBJECTEMBED标记 

    3JSP中动态INCLUDE与静态INCLUDE的区别? 

    答:动态INCLUDEjsp:include动作实现 

    <jsp:include page=included.jsp flush=true />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态INCLUDEinclude伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@ include file=included.htm %> 

    4、两种跳转方式分别是什么?有什么区别

    答:有两种,分别为: 

    <jsp:include page=included.jsp flush=true> 

    <jsp:forward page= nextpage.jsp/> 

    前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。 

    Servlet方面 

    1、说一说Servlet的生命周期

    :servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,servicedestroy方法表达。 

    2Servlet版本间(忘了问的是哪两个版本了)的不同

    3JAVA SERVLET APIforward() redirect()的区别? 

    :前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用

    sendRedirect()方法。 

    4Servlet的基本架构 

     1 public class ServletName extends HttpServlet { 
     2 
     3 public void doPost(HttpServletRequest request, HttpServletResponse response) throws 
     4 
     5 ServletException, IOException { 
     6 
     7 } 
     8 
     9 public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
    10 
    11 ServletException, IOException { 
    12 
    13 } 
    14 
    15 } 
    View Code

    JdbcJdo方面 

    1、可能会让你写一段JdbcOracle的程序,并实现数据查询

    :程序如下: 

    package hello.ant; 

      1 import java.sql.*; 
      2 
      3 public class jdbc 
      4 
      5 { 
      6 
      7 String dbUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl; 
      8 
      9 String theUser=admin; 
     10 
     11 String thePw=manager; 
     12 
     13 Connection c=null; 
     14 
     15 Statement conn; 
     16 
     17 ResultSet rs=null; 
     18 
     19 public jdbc() 
     20 
     21 { 
     22 
     23 try{ 
     24 
     25 Class.forName(oracle.jdbc.driver.OracleDriver).newInstance(); 
     26 
     27 c = DriverManager.getConnection(dbUrl,theUser,thePw); 
     28 
     29 conn=c.createStatement(); 
     30 
     31 }catch(Exception e){ 
     32 
     33 e.printStackTrace(); 
     34 
     35 } 
     36 
     37 } 
     38 
     39 public boolean executeUpdate(String sql) 
     40 
     41 { 
     42 
     43 try 
     44 
     45 { 
     46 
     47 conn.executeUpdate(sql); 
     48 
     49 return true; 
     50 
     51 } 
     52 
     53 catch (SQLException e) 
     54 
     55 { 
     56 
     57 e.printStackTrace(); 
     58 
     59 return false; 
     60 
     61 } 
     62 
     63 } 
     64 
     65 public ResultSet executeQuery(String sql) 
     66 
     67 { 
     68 
     69 rs=null; 
     70 
     71 try 
     72 
     73 { 
     74 
     75 rs=conn.executeQuery(sql); 
     76 
     77 } 
     78 
     79 catch (SQLException e) 
     80 
     81 { 
     82 
     83 e.printStackTrace(); 
     84 
     85 } 
     86 
     87 return rs; 
     88 
     89 } 
     90 
     91 public void close() 
     92 
     93 { 
     94 
     95 try 
     96 
     97 { 
     98 
     99 conn.close(); 
    100 
    101 c.close(); 
    102 
    103 } 
    104 
    105 catch (Exception e) 
    106 
    107 { 
    108 
    109 e.printStackTrace(); 
    110 
    111 } 
    112 
    113 } 
    114 
    115 public static void main(String[] args) 
    116 
    117 { 
    118 
    119 ResultSet rs; 
    120 
    121 jdbc conn = new jdbc(); 
    122 
    123 rs=conn.executeQuery(select * from test); 
    124 
    125 try{ 
    126 
    127 while (rs.next()) 
    128 
    129 { 
    130 
    131 System.out.println(rs.getString(id)); 
    132 
    133 System.out.println(rs.getString(name)); 
    134 
    135 } 
    136 
    137 }catch(Exception e) 
    138 
    139 { 
    140 
    141 e.printStackTrace(); 
    142 
    143 } 
    144 
    145 } 
    146 
    147 } 
    View Code

    2Class.forName的作用?为什么要用

    答:调用该访问返回一个以字符串指定类名的类的对象。 

    3Jdo是什么

    :JDOJava对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化APIJDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMSJDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。 

    4、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。 

    :一种分页方法 

      1 <% 
      2 
      3 int i=1; 
      4 
      5 int numPages=14; 
      6 
      7 String pages = request.getParameter(page) ; 
      8 
      9 int currentPage = 1; 
     10 
     11 currentPage=(pages==null)?(1):{Integer.parseInt(pages)} 
     12 
     13 sql = select count(*) from tables; 
     14 
     15 ResultSet rs = DBLink.executeQuery(sql) ; 
     16 
     17 while(rs.next()) i = rs.getInt(1) ; 
     18 
     19 int intPageCount=1; 
     20 
     21 intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1); 
     22 
     23 int nextPage ; 
     24 
     25 int upPage; 
     26 
     27 nextPage = currentPage+1; 
     28 
     29 if (nextPage>=intPageCount) nextPage=intPageCount; 
     30 
     31 upPage = currentPage-1; 
     32 
     33 if (upPage<=1) upPage=1; 
     34 
     35 rs.close(); 
     36 
     37 sql=select * from tables; 
     38 
     39 rs=DBLink.executeQuery(sql); 
     40 
     41 i=0; 
     42 
     43 while((i<numPages*(currentPage-1))&&rs.next()){i++;} 
     44 
     45 %> 
     46 
     47 //输出内容 
     48 
     49 //输出翻页连接 
     50 
     51 合计:<%=currentPage%>/<%=intPageCount%><a href=List.jsp?page=1>第一页</a><a 
     52 
     53 href=List.jsp?page=<%=upPage%>>上一页</a> 
     54 
     55 <% 
     56 
     57 for(int j=1;j<=intPageCount;j++){ 
     58 
     59 if(currentPage!=j){ 
     60 
     61 %> 
     62 
     63 <a href=list.jsp?page=<%=j%>>[<%=j%>]</a> 
     64 
     65 <% 
     66 
     67 }else{ 
     68 
     69 out.println(j); 
     70 
     71 } 
     72 
     73 } 
     74 
     75 %> 
     76 
     77 <a href=List.jsp?page=<%=nextPage%>>下一页</a><a href=List.jsp?page=<%=intPageCount%>>最后页
     78 
     79 </a>
     80 
     81  
     82 
     83 Xml方面 
     84 
     85  
     86 
     87 1、xml有哪些解析技术?区别是什么? 
     88 
     89 答:有DOM,SAX,STAX等 
     90 
     91 DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 
     92 
     93 STAX:Streaming API for XML (StAX) 
     94 
     95  
     96 
     97 2、你在项目中用到了xml技术的哪些方面?如何实现的? 
     98 
     99 答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。 
    100 
    101  
    102 
    103 3、用jdom解析xml文件时如何解决中文问题?如何解析? 
    104 
    105 答:看如下代码,用编码方式加以解决 
    106 
    107 package test; 
    108 
    109 import java.io.*; 
    110 
    111 public class DOMTest 
    112 
    113 { 
    114 
    115 private String inFile = c:people.xml; 
    116 
    117 private String outFile = c:people.xml; 
    118 
    119 public static void main(String args[]) 
    120 
    121 { 
    122 
    123 new DOMTest(); 
    124 
    125  
    126 
    127 } 
    128 
    129 public DOMTest() 
    130 
    131 { 
    132 
    133 try 
    134 
    135 { 
    136 
    137 javax.xml.parsers.DocumentBuilder builder = 
    138 
    139 javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
    140 
    141 org.w3c.dom.Document doc = builder.newDocument(); 
    142 
    143 org.w3c.dom.Element root = doc.createElement(老师); 
    144 
    145 org.w3c.dom.Element wang = doc.createElement(王); 
    146 
    147 org.w3c.dom.Element liu = doc.createElement(刘); 
    148 
    149 wang.appendChild(doc.createTextNode(我是王老师)); 
    150 
    151 root.appendChild(wang); 
    152 
    153 doc.appendChild(root); 
    154 
    155 javax.xml.transform.Transformer transformer = 
    156 
    157 javax.xml.transform.TransformerFactory.newInstance().newTransformer(); 
    158 
    159 transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, gb2312); 
    160 
    161 transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, yes); 
    162 
    163 transformer.transform(new javax.xml.transform.dom.DOMSource(doc), 
    164 
    165 new 
    166 
    167 javax.xml.transform.stream.StreamResult(outFile)); 
    168 
    169 } 
    170 
    171 catch (Exception e) 
    172 
    173 { 
    174 
    175 System.out.println (e.getMessage()); 
    176 
    177 } 
    178 
    179 } 
    180 
    181 } 
    182 
    183 4、编程用JAVA解析XML的方式. 
    184 
    185 答:用SAX方式解析XML,XML文件如下: 
    186 
    187 <?xml version=1.0 encoding=gb2312?> 
    188 
    189 <person> 
    190 
    191 <name>王小明</name> 
    192 
    193 <college>信息学院</college> 
    194 
    195 <telephone>6258113</telephone> 
    196 
    197 <notes>男,1955年生,博士,95年调入海南大学</notes> 
    198 
    199 </person> 
    200 
    201 事件回调类SAXHandler.java 
    202 
    203 import java.io.*; 
    204 
    205 import java.util.Hashtable; 
    206 
    207 import org.xml.sax.*; 
    208 
    209 public class SAXHandler extends HandlerBase 
    210 
    211 { 
    212 
    213 private Hashtable table = new Hashtable(); 
    214 
    215 private String currentElement = null; 
    216 
    217 private String currentValue = null; 
    218 
    219 public void setTable(Hashtable table) 
    220 
    221 { 
    222 
    223 this.table = table; 
    224 
    225 } 
    226 
    227 public Hashtable getTable() 
    228 
    229 { 
    230 
    231 return table; 
    232 
    233 } 
    234 
    235 public void startElement(String tag, AttributeList attrs) 
    236 
    237 throws SAXException 
    238 
    239 { 
    240 
    241 currentElement = tag; 
    242 
    243 } 
    244 
    245 public void characters(char[] ch, int start, int length) 
    246 
    247 throws SAXException 
    248 
    249 { 
    250 
    251 currentValue = new String(ch, start, length); 
    252 
    253 } 
    254 
    255 public void endElement(String name) throws SAXException 
    256 
    257 { 
    258 
    259 if (currentElement.equals(name)) 
    260 
    261 table.put(currentElement, currentValue); 
    262 
    263 } 
    264 
    265  
    266 
    267 } 
    268 
    269 JSP内容显示源码,SaxXml.jsp: 
    270 
    271 <HTML> 
    272 
    273 <HEAD> 
    274 
    275 <TITLE>剖析XML文件people.xml</TITLE> 
    276 
    277 </HEAD> 
    278 
    279 <BODY> 
    280 
    281 <%@ page errorPage=ErrPage.jsp 
    282 
    283 contentType=text/html;charset=GB2312 %> 
    284 
    285 <%@ page import=java.io.* %> 
    286 
    287 <%@ page import=java.util.Hashtable %> 
    288 
    289 <%@ page import=org.w3c.dom.* %> 
    290 
    291 <%@ page import=org.xml.sax.* %> 
    292 
    293 <%@ page import=javax.xml.parsers.SAXParserFactory %> 
    294 
    295 <%@ page import=javax.xml.parsers.SAXParser %> 
    296 
    297 <%@ page import=SAXHandler %> 
    298 
    299 <% 
    300 
    301 File file = new File(c:people.xml); 
    302 
    303 FileReader reader = new FileReader(file); 
    304 
    305 Parser parser; 
    306 
    307 SAXParserFactory spf = SAXParserFactory.newInstance(); 
    308 
    309 SAXParser sp = spf.newSAXParser(); 
    310 
    311 SAXHandler handler = new SAXHandler(); 
    312 
    313 sp.parse(new InputSource(reader), handler); 
    314 
    315 Hashtable hashTable = handler.getTable(); 
    316 
    317 out.println(<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>); 
    318 
    319 out.println(<TR><TD>姓名</TD> + <TD> + 
    320 
    321 (String)hashTable.get(new String(name)) + </TD></TR>); 
    322 
    323 out.println(<TR><TD>学院</TD> + <TD> + 
    324 
    325 (String)hashTable.get(new String(college))+</TD></TR>); 
    326 
    327 out.println(<TR><TD>电话</TD> + <TD> + 
    328 
    329 (String)hashTable.get(new String(telephone)) + </TD></TR>); 
    330 
    331 out.println(<TR><TD>备注</TD> + <TD> + 
    332 
    333 (String)hashTable.get(new String(notes)) + </TD></TR>); 
    334 
    335 out.println(</TABLE>); 
    336 
    337 %> 
    338 
    339 </BODY> 
    340 
    341 </HTML> 
    View Code

    EJB方面 

    1EJB2.0有哪些内容?分别用在什么场合? EJB2.0EJB1.1的区别

    答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS..... 

    2EJBJAVA BEAN的区别? 

    :Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java 

    Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如WebspereWebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 

    3EJB的基本架构 

    :一个EJB包括三个部分

    Remote Interface 接口的代码 

     1 package Beans; 
     2 
     3 import javax.ejb.EJBObject; 
     4 
     5 import java.rmi.RemoteException; 
     6 
     7 public interface Add extends EJBObject 
     8 
     9 { 
    10 
    11 //some method declare 
    12 
    13 } 
    14 
    15 Home Interface 接口的代码 
    16 
    17 package Beans; 
    18 
    19 import java.rmi.RemoteException; 
    20 
    21 import jaax.ejb.CreateException; 
    22 
    23 import javax.ejb.EJBHome; 
    24 
    25 public interface AddHome extends EJBHome 
    26 
    27 { 
    28 
    29 //some method declare 
    30 
    31 } 
    32 
    33 EJB类的代码 
    34 
    35 package Beans; 
    36 
    37 import java.rmi.RemoteException; 
    38 
    39 import javax.ejb.SessionBean; 
    40 
    41 import javx.ejb.SessionContext; 
    42 
    43 public class AddBean Implements SessionBean 
    44 
    45 { 
    46 
    47 //some method declare 
    48 
    49 }  
    View Code

    J2EE,MVC方面 

    1MVC的各个部分都有那些技术来实现?如何实现

    :MVCModelViewController的简写。Model 代表的是应用的业务逻辑(通过JavaBeanEJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 

    2、应用服务器与WEB SERVER的区别? 

    3J2EE是什么? 

    :Je22Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。 

    4WEB SERVICE名词解释。JSWDL开发包的介绍。JAXPJAXM的解释。SOAPUDDI,WSDL解释。

  • 相关阅读:
    Python之杨辉三角算法实现
    iOS之UI--微博个人详情页
    iOS之UI--通讯录的实例关键知识技术点积累
    iOS之github第三方框架(持续更新)
    关于第三方IOS的checkBox框架的使用
    iOS之UI--Quartz2D的入门应用--重绘下载圆形进度条
    iOS之多控制器管理--项目中的常见文件
    iOS之微博UI实例--拟物化设计(成功了90%)
    主要责任、主要技术
    IOS之UI -- UITableView -- 2 -- 等高的Cell
  • 原文地址:https://www.cnblogs.com/he-123/p/5376357.html
Copyright © 2011-2022 走看看