J2EE

一 HTML & Java Script
    HTML
        结构
        <table></table>
        <form></form>
        <a href="">ass</a>
        <img src="">
    java script(****)
        1. 在客户端浏览器运行
        2. 表单(输入)验证
        3. 访问HTML元素(Ajax)
            表单元素: formName.elememtName  //frm.userName.value
            一般的元素:最好通过Id属性访问
                    document.all("sdd") //不推荐
                    document.getElementById("") //DOM
                   通过标签名
                    <img src="a.jpg" id='s'>       
                    <img src="b.jpg">
                   var arr = document.getElementsByTagName("img");
                   for(i = 0; i < arr.lentgth; i++){
                    var element = arr[i];
                   }   
            4. 欠缺的:操作HTML元素的属性document.getElementById("s").src="c.jpg";
            有帮助的:CSS(层叠式的样式表)

二 Servlet(*****)
    1. Http相关知识
        对HTTP协议的理解
            a. 基于TCP/IP
            b. 无连接(改良:Keep-Alive)
            c. 无状态(解决方案:Session, Cookie)
        GET/POST区别
    2. Servlet相关概念
        Servlet生命周期(何时创建?由谁创建?如何响应请求?何时销毁)
                (init() , service() , doGet()/doPost(),destroy())
        *保证我们开发的servlet可以工作在多线程环境下

    3. 掌握Servlet的开发和部署
        a. extends HttpServlet
        b. 重写doGet()/doPost(),处理http请求
        c. web.xml
            <servlet/>
            <servlet-mapping/>
    4. Java Web API
        request 与请求有关的数据和方法
            1. 用户提交的数据getParameter()
            2. Http头    getHeader()
            3. CGI变量(服务器的信息)
            *request.setCharacterEncoding();解决输入流的乱码问题
            *request.setAttribute(); //用于在web 组件(jsp, servlet)之间传递数据
        response 与应答有关的数据和方法
            1. 输出content (HTML代码),通过输出流
                out.write()
                out.print()
            2. 设置Http响应头
                setHeader()//清客户端浏览器缓存的方案
                setContentType("text/html;charset=UTF-8");
        session
            attrbute(get/set/remove)
            invalidate()
            与Cookie的联系和区别
        servletContext(application) (代表Servlet的运行环境,唯一实例)
            attrbute(get/set/remove)

        1. 如何解决中文乱码问题?
        2. forward vs sendRedirect

三 JSP
    1. 概念 Java Server Pages(HTML, Servlet)
    2. JSP的处理机制 JSP -> .java(/work) -> .class(Servlet)(/work)
    <%! %> JSP声明(全局变量和方法)
    <% %>  JSP小脚本 (处理请求的流程)_jspService()
    <%= %> JSP表达式 out.print()
    <%--  --%>
四    JSP指令和动作
    指令在何时处理?.jsp -> .java
    动作在何时处理? runtime
    <%@ page pageEncoding="" contentType import errorPage isErrorPage session bufferSize autoFlush
    <%@ include file=""
    <%@ taglib uri="" prefix=""

    <jsp:include page="" flush=""
    <jsp:forward page="" flush=""
    *<jsp:useBean id class scope type beanName
    <jsp:setProperty> jstl
    <jsp:getProperty name="" property=""> 不如EL
   
五 JSP中的隐含对象
    在<% %> <%= %>可以直接使用
    9个
        page (this)
        request
        session
        application(servletContex)
        response
        pageContext
        exception
        config
        out

    Java Bean
        概念和标准
    MVC
        概念
        编程

    EL JSTL (对MVC的帮助)
八    过滤器和监听器
    过滤器(*)
        如何开发?
        implements javax.servlet.Filter
        doFilter()
        web.xml
        应用
            1. 过滤器要实现javax.servlet.Filter接口
                在doFilter方法中实现处理逻辑

            2.在web.xml文件中配置过滤器,与servlet的配置类似

                1。 乱码问题
                2。 访问/权限控制
            2. 权限控制(规划url)
                a. 页面的目录
                b. servlet的URL
           权限控制先考虑,后实现
   
        监听器
        能监听(2)个对象的(5)个事件
        如何开发?
        implements ?
        web.xml
        ServletContextListener 2        响应ServletContext对象的创建和销毁
        ServletContextAttributeListener 3 响应ServletContext对象的属性变化
        HttpSessionListener 2        响应HttpSession对象的创建和销毁
        HttpSessionAttributeListener     3响应HttpSession对象的属性变化
======================================================================
Data Source(tomcat 6)  数据源
-----------
================================
文件上传(实现方式很多,使用第3方开发的组件)
SmartUpload

一:
    上传文件的页面
    1. <input type="file"
    2. <form method="post"
    3. <form method="post" ENCTYPE="multipart/form-data"

二: 国际化
三: 分页显示

    基于查询:
        Mysql : select * from user order by name limit 0,20
        Mysql : select * from user order by name limit 20,20
        Mysql : select * from user order by name limit ?,20
        ? = (request.getParameter("page") -1) * 20
Oracle

select b.* from   
    (select a.*, rownum _row from
        (select * from user order by name) a
    where rownum <= 40) b
where b._row > 20

40 = (request.getParameter("page") * 20
20 = (request.getParameter("page") -1) * 20


--------------分页导航条的算法
1. 总的记录数 (select count(*) from user) $total
2. 每页显示的条目数 (一般是常量)       $page_items
3. 用户当前请求的页码数    (用户提交,默认为1)          $page

4.总页数 $total_pages
    if ($total % $page_items == 0)
        $total_pages = $total / $page_items;
    else
        $total_pages = $total / $page_items + 1;

第一页: <a href="userList.jsp?page=1" >第一页</a>
上一页: <a href="userList.jsp?page=($page-1)" >上一页</a>
下一页: <a href="userList.jsp?page=($page+1)" >上一页</a>
最后页: <a href="userList.jsp?page=$total_pages" >最后页</a>

1 实现分页的功能
2 项目的准备
    移动计费

---------------------

 

 

 

 

 

Java中级阶段测试题

 

一 选择题(30)
1.使用JDBC连接Oracle数据库(Oracle实例名为ORA92,主机为host,端口号为1521)的合法URL为:_____   B
A. jdbc:oracle:thin:@host:1521/ORA92
B. jdbc:oracle:thin:@host:1521:ORA92
C. oracle:jdbc:thin:@host:1521/ORA92
D. oracle:jdbc:thin:@host:1521:ORA92

2.JSP页面之间共享数据的范围由小到大的排列是:_____ A
A. page、request、session、application
B. page、session、request、application
C. request、page、session、application
D. request、session、page、application

3.下面的指令书写正确的是:_____ D
A. <jsp:forword path="a.jsp">
B. <jsp:useBean id="myBean" scope="request">
 <jsp:setProperty id="myBean" property="name" value="tom" />
   </jsp:useBean>
C. <%@ page import="java.util.*;java.sql.*" %>
D. <jsp:include flush="true" page="a.jsp"/>

4.以下关于Servlet的说法中正确的是:_____  C
A. 在Tomcat启动时即实例化Servlet,以后客户端每次对该Servlet的请求将不会产生该Servlet的新实例
B. Servlet中的各方法的执行顺序是init(), doGet()/doPost()/,service(), destroy()
C. Servlet是非线程安全的,我们编程时必须考虑这个因素
D. 客户端访问Servlet的时候必须指定该Servlet的全路径名,即“包名”加“类名”

5.以下关于JSP page指令的说法中正确的是:_____ A
A. import是page指令中唯一一个可以在同一JSP页面中多次出现的属性
B. page指令中的session属性用于在该JSP页面中创建session
C. 将page指令中的autoFlush指令设置为false可以有效减轻服务器的负担,是值得推荐的做法
D. 只有将isError属性设置为true,才可以在该页面上使用exception隐含对象

6.假设在helloapp应用中有一个HelloServlet类,它位于org.javathinker包下,那么这个类的class文件应该放在什么目录下? _____ D
A. helloapp/HelloServlet.class
B. helloapp/WEB-INF/HelloServlet.class
C. helloapp/WEB-INF/classes/HelloServlet.class
D. helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class

7. 假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:
<servlet>
  <servlet-name> HelloServlet </servlet-name>
  <servlet-class>org.javathinker.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name> HelloServlet </servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>
那么在浏览器端访问HelloServlet的URL是什么? _____  D
A. http://localhost:8080/HelloServlet
B. http://localhost:8080/helloapp/HelloServlet
C. http://localhost:8080/helloapp/org/javathinker/hello
D. http://localhost:8080/helloapp/hello

8从HTTP请求中,获得请求参数,应该调用哪个方法? _____ C
A.调用HttpServletRequest对象的getAttribute()方法
B.调用ServletContext对象的getAttribute()方法
C.调用HttpServletRequest对象的getParameter()方法

9 JSP内嵌对象session的类型为javax.servlet.http. HttpSession,下述语句会使该对象失效的是:_____ C
A. session.dispose();
B. session.clear();
C. session.invalidate();
D. session.removeAll();

10.当浏览器第二次访问以下JSP网页时的输出结果是_____ C

<!% int a=0;     %>
<%
     int b=0;
     a++;
     b++;
%>

a:<%= a %> <br>
b:<%= b %>
  
选项:
A. a=0  b=0
B. a=1  b=1
C. a=2  b=1

二 问答题
1.在JDBC开发中,我们总是会将一些问题场景与特定的解决方案(概念)关联起来,请用线将下面的问题场景和与之关联的解决方案(概念)连起来:(5)

   jsp页面的分页 2     1 PreparedStatement
   执行存储过程 4     2 可滚动的结果集
   批量插入数据到数据库 5      
执行相互关联的多条数据库操作指令 3     3 事务
向数据库插入一条记录,并获得自增字段的值 1     4 CallableStatement
防止SQL注入攻击 1    5 Batch

2.以下的代码错在何处:(5)

<HTML>
<HEAD><TITLE>Alex Soft</TITLE></HEAD>
<BODY>
<!--Header-->
<jsp:include page="header.jsp" flush="true"/>
<BR>
<jsp:forward page="WEB-INF/foot.jsp">
 <jsp:param name="name" value="Testing Name" />
</jsp:forward>
</BODY>
</HTML>

答:

<jsp:include page="header.jsp" flush="true"/>
<jsp:forward page="WEB-INF/foot.jsp">同用时<jsp:include 的flush=" "不能为true


3.请用任意一种SQL方言写出基于查询的页面分页处理语句(5)
答:
Mysql:
SELECT * FROM  emp WHERE id=0 ORDER BY name DESC LIMIT 0,20;

Oracle:
select ename,sal from (
 select ename,sal ,rownum r from
 (select ename,sal from emp order by sal desc)
) where r > 5 and r < 10


4.请写出你在开发Web程序时,处理中文字符编码问题的一些经验(10)
现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱码两类。
 1)JSP页面中显示中文乱码
  尽量使用统一的编码[JSP ,HTML页面乱码],推荐从页面到数据库再到配置文件都使用UTF-8进行编码!
2)表单提交乱码  
Post请求:
SetCharacterEncodingFilter的使用,如果是基于Servlet开发的东西,这个Filter只是对POST请求有效,GET一律忽略。
Get请求:
1:GET请求乱码[Ajax]:原因是Tomcat默认请求编码是ISO8859,需要在Tomcat的配置文件 server.xml添加一个参数,URIEncoding=”UTF-8”,这样请求中附件的参数就会以UTF-8来进行编码。


5.请简述你对MVC架构的理解(可画图说明)(10)

M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。


 

 

6.请简述你对DAO模式、工厂模式以及DAO与抽象工厂模式结合(DAO厂模式)的理解(10)


层次更加分明,分离了业务层和数据访问层

有利于系统的扩展。

工厂模式生产Dao对象!修改数据源,生产新的Dao对象

//------------------
利用DAO模式和Abstract Factory模式,本设计方案可解决如下问题:
    (1)对数据源的完成透明性。
    (2)方便的用户功能扩展性。
    (3)方便的维护性。
    (4)灵活的系统参数配置。

 

7.请简述Tomcat的下列文件夹的用途:(5)
1.conf         存放Tomcat配置文件
2.webapps       存放默认的WEB应用
3.work
答:
conf  放置一些tomat配置文件
webapps  默认web应用目录!
Work  工作目录,放置jsp页面转换的.java;.class文件


8.Java Web开发技术中,有很多技术成对出现,它们往往功能相近但是又互有区别。请简述下面各技术的相同点和不同点(20)
1. GET 和POST
2. Cookie和Session
3. sendRedirect和 forword
4. <%@ include.../>与<jsp:include .../>
答:

GET和POST
都是客户端提交数据的方式

GET报头,长度有限制;
post报文,长度没有限制了
-------
Cookie和session

都可以保存特定客户端相关联的数据 [状态]

cookie:保存在客户端[字符串]
session:保存在服务器[对象]

[从应用角度来说cookie可以被用户读取,
session存在客户端的对象,用户获取不]

-------
sendRedirect和forwark


sendRedirect:jsp,jsp之间[不能共用request]
不同网站之间可以实现跳转

forwark Servlet,servlet,jsp,jsp之间 [共用Request文件]
在同一个Web应用之间跳转

-------
<%@include../>  <jsp:include.../>

都可以把另外一个页面的内容加载到本身页面

.jsp转换为.java就加载进来了

.java到.class加载进来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值