GDPU JavaWeb 大结局篇

目录

实验复习

代码模板

课后巩固习题

课件精简版


GDPUJavaWeb程序设计复习,习题集,重点知识总结,一篇就够了。

实验复习

JavaWeb代码复习,在专栏也可查阅。留意一下登陆界面的操作及mvc的那些重复的代码。大小写要注意。一般来说很多方法都是两个单词拼的,后一个单词的首字母要大写,如doGet、getParameter等。

代码模板

这里的注释用//

jsp部分

1.表单、常用的登陆界面

    <form action="某个servlet路径" method="post">  //不写method就是get,不写action就是转到该文件      <input type="text" name="id">
    <input type="text" name="name">
    <input type="submit" value="查询">//表单提交
    </form>

2.请求参数显示在界面上、会话获取、jsp的使用

<%= request.getParameter("username") %>

<%

String m=(String) session.getAttribute("message");    //返回类型object类,记得要转换类型

 out.print(m);

%>

3.javabean中标签

<jsp:setProperty  property = “属性名称”   name="bean对象名"   value="常量"/ >

 <jsp:setProperty  property = “属性名称”   name="bean对象名"  param="参数名"/ >

<jsp:setProperty  property = “*”   name="bean对象名"  / >

<jsp:getProperty property="属性名称" name="bean对象名"/>

<jsp:useBean id="bean对象名" class="实例化bean对象的类名" scope="page|request|session、application">     </jsp:useBean>

<jsp:useBean id="user" class="com.beans.UserBean" scope="session"/>

<jsp:setProperty name="user" property="*"/>

<jsp:getProperty name="user" property="username"/>

4.EL与JSTL

<c:forEach items="${books}" var="book">
<c:if test="${book.bookPrice > 50}"></c:if>${book.bookName}${book.bookPrice}
</c:forEach>

servlet部分

//注解指向响应路径,对应jsp的action,可以跟类名不同,别弄混

@WebServlet("/loginServlet")                       
public class LoginServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws              ServletException, IOException {             //看清楚题目是get还是post
        response.setContentType("text/html;charset=utf-8");

//获取参数跟会话很重要,注意request.getParameter()要找准表单的name属性

//注:

//getParameter(String name) 方法获取请求参数,返回值是字符串类型。

//如果需要其他类型(如整数或浮点数),需要手动转换。

//setAttribute(String name, Object value) 可以存储任何类型的对象。

//getAttribute(String name) 返回一个 Object 类型,需要进行类型转换。

        String username = request.getParameter("username");

     double d = Double.parseDouble(request.getParameter("edge"));

   HttpSession session = request.getSession();//这句不能忽略,servlet中要实例化这个对象才能用
        session.setAttribute("message", "123");

        session().setAttribute("user", user);//可以存实例化的对象类型

       request.getSession().setAttribute("user", user);


//请求转发forward跟重定向sendRedirect是servlet的大重点
        if (username != null && password != null && username.equals(password)) {
            request.getRequestDispatcher("loginSuccess.jsp" ).forward(request, response);
        } else {
             response.sendRedirect("loginFail.jsp");
        }
    }
       protected void doPost(HttpServletRequest request, HttpServletResponse response) throws            ServletException, IOException {           //get跟post的重新调用
            doGet(request, response);
        }

JavaBean部分

1.jdbc数据库访问

加载驱动程序:Class.forName

建立连接对象:Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbjsp","root","root");

创建语句对象:String sql = "SELECT * FROM student WHERE id=? and name like ?";
                         PreparedStatement pst = conn.prepareStatement(sql);
                          pst.setString(1, studentId );
                         pst.setString(2, "%"+stuname+"%");
                          ResultSet rs = pst.executeQuery();

获取结果集:while(rs.next()){ stuid=rs.getInt("stu_id");System.out.println(stuid); }

关闭建立的对象

        try {
                if (rs != null) {
                    rs.close();
                }
                if (statement != null) {
                    statement.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }

2.VO

//公共类,私有变量、读写
public class Book {
    private int bookId;
    public Book(int bookId) {
        this.bookId = bookId;
    }
    public int getBookId() {
        return bookId;
    }
    public void setBookId(int bookId) {
        this.bookId = bookId;
    }

课后巩固习题

 1

【单选题】下列说法正确的是( D )                        错的把B/S跟C/S换一下即可

A、在B/S结构中,结果应用软件发生了改变,就必须通知所有的客户端重新安装

B、在C/S结构中,即使应用软件发生了改变,也不用通知客户机升级该软件

C、在C/S结构中,客户机上不需要安装应用软件,只需要使用浏览器即可

D、B/S结构相较于C/S结构服务器负担比较重,快速响应不如C/S结构

答案解析:                                             C/S是胖客户端,B/S是瘦客户端

网络应用程序有C/S(客户机/服务器)与B/S(浏览器/服务器)两种结构,例,QQ就是C/S结构。

1、C/S分为客户机和服务器两层,将应用软件安装在客户机端,通过网络与服务器端相互通信,如果应用软件改动了,必须通知所有的客户端重新安装;

2、B/S也分为客户机和服务器两层,但是客户机上不用安装软件,只需要安装浏览器即可,如,百度查询就是B/S结构应用形式之一。

2

【单选题】

Tomcat安装目录中bin文件夹下存放的文件为( D )

A、系统日志文件

B、Tomcat系统的一些配置文件

C、网站资源文件

D、支持Tomcat运行的常用.exe文件

答案解析:

Tomcat安装目录中重要文件夹或文件内容

(1)bin:支持Tomcat运行的常用.exe文件

(2)conf:Tomcat系统的一些配置文件

(3)logs:系统日志文件

(4)webapps:网站资源文件

3

【单选题】

JSP的全称为( C )

A、Java Script Pages

B、Java Script Page

C、Java Server Pages

D、Java Server Programme

答案解析:

JSP(Java Server Pages)

4

【单选题】

下面关于JSP的说法错误的是( B )

A、JSP是由Sun公司提出的、其他许多公司一起参与建立的一种动态网页技术标准

B、JSP开发的Web应用不能跨平台

C、JSP具备了Java技术面向对象、与平台无关性且安全可靠的优点

D、利用JSP可以很方便地在页面中生成动态的内容

答案解析:

JSP是由Sun公司提出的、其他许多公司一起参与建立的一种动态网页技术标准。和PHP一样,使用JSP开发的Web应用也是跨平台的。JSP还支持自定义标签。JSP具备了Java技术面向对象、与平台无关性且安全可靠的优点。

5

【单选题】

关于Web项目的目录结构,下面说法错误的是( A )

A、web.xml是Web应用的配置文件,可以随意修改

B、lib文件夹中包含了Web应用所需要的.jar和.zip文件

C、META-INF是系统自动生成、用于存放系统描述信息的文件夹

D、WebRoot目录是Web应用的顶层目录,也称为文档的根目录

答案解析:

Web项目的目录结构:

1、src目录:用来存放Java源文件

2、WebRoot目录:Web项目的顶层目录,又称为文档根目录,包括以下部分

(1)META-INF目录:系统自动生成,存放系统描述信息,一般情况使用较少

(2)WEB-INF目录:存在于文档根目录,该目录不能被引用,即该目录下的文件无法对外发布,由以下几部分组成

①lib目录:包含Web项目所需的.jar或.zip文件,例,数据库驱动程序

②web.xml:Web项目的配置文件,不能删除或随意改动

③classes目录:包含src目录下的Java源文件所编译的.class文件

(3)其他目录:网站中的一些用户文件,包括下列文件

①静态文件:包括所有的HTML网页、CSS文件、图像文件等,按功能形式分类;

②JSP文件:

6

【单选题】Tomcat服务器运行的端口号默认为( B )。

A、8000

B、8080

C、8800

D、8081

7

【单选题】Tomcat安装目录中( B )文件夹中的内容是网站资源文件。

A、src

B、webapps

C、webroot

D、conf

8

【单选题】在Web项目的目录结构中,(  A  )目录用来存放Java源文件

A、src

B、webroot

C、web-inf

D、lib

9

【单选题】

下列选项中,启动Tomcat的命令startup.bat,放在哪个目录中(A)

A、bin

B、lib

C、webapps

D、work

答案解析:

URL(Uniform Resource Locator):统一资源定位符

1、URL即网址,是唯一能够识别Internet上具体计算机、目录、文件位置的命名约定。

2、URL由以下3部分组成:

(1)协议:例,http

(2)主机IP地址(有时含端口号):例:localhost:8080

(3)主机资源的具体地址:例,目录和文件名等

3、说明:第1部分与第2部分用“://”隔开,第2部分与第3部分用“/"隔开。

10

【单选题】

在Web程序结构中,浏览器端与应用服务器端采用请求/响应模式进行交互的过程为( A )

(1)用户输入  (2)访问数据库  (3)发送响应  

(4)发送请求  (5)返回结果  (6)显示

A、(1)(4)(2)(5)(3)(6)

B、(1)(2)(3)(4)(5)(6)

C、(1)(4)(2)(3)(5)(6)

D、 (4)(1)(2)(5)(6)(3)

1

【单选题】

JSP页面在第一次运行的时候被JSP引擎转换为(D)。

A、CSS文件

B、JSP文件

C、HTML文件

D、Java文件

2

【单选题】

下列关于JSP表达式的说法错误的是( B )。

A、JSP表达式的作用是将其里面的内容所运算的结果输出到客户端

B、在JSP表达式中能用“;”结束

C、在 JSP 表达式中不能出现多条语句

D、JSP表达式中的内容一定是字符串类型,或者能通过toString()函数转换成字符串的形式

注意这里有个“一定”是对的,不要选这个

答案解析:

JSP 表达式的作用是定义 JSP 的一些输出。表达式基本语法如下所示:

<%=变量/返回值/表达式%>

JSP 表达式的作用:将其里面内容所运算的结果输出到客户端;

例:“<%=msg%>”是JSP表达式,即将msg内容输出给客户端。

等价于“<%out.print(msg);%>”。

使用 JSP 表达式,需要注意几个细节:

1、JSP 表达式中不能用";"结束

2、在 JSP 表达式中不能出现多条语句

3、JSP表达式的内容一定是字符串类型,或者能通过 toString()函数转换成字符串的形式

3

【单选题】

使用( A )属性可以设置JSP的MIME类型和可选字符编码。

A、contentType

B、Type

C、pageEncoding

D、charset

4

【单选题】

用于将请求跳转到另一个页面的JSP动作是( C )。

A、<jsp:include>

B、<isp:plugin>

C、<jsp:forward>       背好这个单词是跳转

D、<jsp:useBean>

答案解析:

jsp:forward:可以实现跳转。

<jsp:forward page="文件名"/> 显然,page属性就是指定要跳转到的目标文件。当该forward动作被执行后,当前的页面将不再被执行,而是去执行指定的目标页面。

5

【单选题】不是JSP运行必须的是(  D  )

A、操作系统

B、Java JDK

C、支持Jsp的Web服务器

D、数据库

6

【判断题】

JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)等都是JSP元素。

7

【判断题】

在“<%!”和“%>”标记之间声明的Java的方法在整个页面内有效。

8

【判断题】

在Java程序片中可以使用Java语言的注释方法,其注释的内容会发送到客户端。

1

【单选题】下列关于表单的说法不正确的是( A )。

A、表单的method属性默认是post                           应该是get

B、在表单中一般有一个按钮负责提交

C、单击“提交”按钮,表单元素中的内容会提交给服务器端

D、在表单中可以输入一些内容,这些输入功能由表单元素提供

答案解析:

表单是用户和服务器之间进行信息交互的重要手段,有了表单,JSP程序才可以更加丰富多彩。 表单是一种可以由用户输入,并提交给服务器端的一个图形界面。

2

【单选题】有下面两段代码

<form action="page2.jsp">

请您输入账号:<input  name="account"  type="text"><br>

请您输入密码:<input  name="password"  type="password"><br>

<input  type="submit"  value="登录">

</form>

<%

//获得表单中name=account的表单元素中输入的值,赋值给str

String  str1=request.getParameter("account");

String  str2=request.getParameter("zhanghu");

%>

若不输入数据,直接单击“登录”按钮,则str1和str2的值分别是( D )。

A、null、null

B、null

C、""、""

D、""、null

答案解析:

表单是提交给服务器的,如何确定到底提交给哪一个界面?用<form>中的action属性确定。

如:<form action="page.jsp">

请您输入账号:<input name="account" type="text"><BR>

请您输入密码:<input name="password" type="password"><BR>

<input type="submit" value="登录">

</form> 表示该表单中输入的内容,提交给page.jsp去运行。

page.jsp如何获取提交过来的值?用request对象。

如:<%

//获得表单中name=account的表单元素中输入的值,赋值给str

String str = request.getParameter("account");

%>

注意:如果表单中没有name=account的表单元素,str为null;如果在表单元素account中没有输入任何内容就提交,str为""。

3

【单选题】要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将<form>标签的method属性值设置为(B)。

A、hidden

B、post

C、get

D、submit

答案解析:

A选项“hidden”可能有一定干扰性,但这里问的是method.input 有一type="hidden"的选项,它是隐藏在网页中的一个表单元素,并不在网页中显示出来。这就是实现隐藏表单的方法。

4

【单选题】下列说法中错误的是( C )。

A、除了复选框、多选列表框等,其他一些表单元素也可以设置为同名

B、获取同名表单元素中数据的方法为request.getParameterValues(arg)

C、用循环输出request.getParameterValues(arg)得到的同名表单元素中数据,起始值下标从1开始                                                                  下标应该从0开始

D、虽然表单传值的方法不是绝对安全的,但由于其简单性和平台支持的多样性,很多程序还是用表单传值

答案解析:

捆绑表单元素,是指多个同名表单元素的值送给服务器端时,是一个捆绑的数组。这种情况下的表单元素主要有:复选框、多选列表框、其他同名表单元素等。

具体获得方法和一般表单元素类似,但在获取数据时,利用request.getParameterValues("表单元素名")方法来获得字符串数组。

多个同名文本框是如何存储在获取到的数组里的?以文本框在源代码中出现的顺序,从数组的第0位开始向后放置。

5

【单选题】

在表单提交的过程中,不能解决中文乱码间题的方案为( C )。

A、将获取到的数据转换成gb2312的格式

B、在获取数据之前先修改request的编码方式

C、把文件头上的字符集设置为中文字符集

D、利用过滤器对整个Web应用进行统一的编码过滤

答案解析:

如果使用的是 Tomcat 服务器,在提交过程中,如果提交的内容中含有中文,经常会出现中文乱码问题。

方法:没有把文件头上的字符集设置为中文字符集。一定要保证文件头上写明:

<%@ page language="java" pageEncoding="gb2312"%>

或 <%@ page language="java" contentType="text/html; charset=gb2312"%>

提交过程中显示乱码,有3种方法解决这个问题:

(1)将其转成gb2312格式

如:变量(字符串 )= new String(变量(字符串 ).getBytes("ISO-8859-1"),"gb2312")

(2)直接修改request的编码,将request的编码修改为支持中文的编码

整个页面中的请求,都可以自动转为中文 request.setCharacterEncoding("gb2312")

(3)利用过滤器

1

【单选题】下列关于JDBC技术的说法错误的是( D )。

A、JDBC相关的API存放在java.sql包中

B、在Java技术系列中,提供访问数据库的API叫作JDBC

C、JDBC提供了一系列的API,让Java语言编写的代码连接数据库,对数据库的数据进行添加、删除、修改和查询

D、JDBC可以适用于任何语言

2

【单选题】下列关于ResultSet类的说法错误的是( B )。

A、游标是ResultSet中的一个可以移动的指针,它指向一行数据,初始时指向第一行的前一行

B、当游标指向某一行,可以使用ResultSet的getString(0)方法获取这一行的第一列数据。

      应该是 getString(1)

C、当游标指向某一行时可以通过ResultSet的getxXX("列名")方法得到这一行的某个数据

D、ResultSetn的next()方法的返回值是一个布尔类型的值

3

【单选题】在Connection中设置executeUpdate不要自动提交的代码是( A )。

A、connection.setAutoCommit(false)    会翻译就行

B、connection.setAutoCommit(true)

C、connection.rollback()

D、connection.close()

4

【单选题】连接到本机MySQL数据库上的SCHOOL数据库的代码为( A ),用户名为"root",密码为"manager"。

A、

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/SCHOOL","root","manager);

B、

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/SCHOOL");

C、

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:1433/SCHOOL");

D、

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:1433/SCHOOL","root","manager);

5

【单选题】

查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery ("select bid,name,author,publish,price from book");语句,如果有满足条件的记录,则得到的结果集rs的列数为( B )

A、4

B、5                               数一下有多少个select的变量

C、6

D、不确定

6

【单选题】

下面的代码是连接哪个数据库的驱动加载片段(  B  )

   try{

     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

   }

  catch(Exception e){

     out.print(e.toString());

  }

A、Oracle

B、Sql Server

C、MySql

D、不确定

1

【单选题】

下列关于内置对象的说法错误的是( D )

A、在所有的JSP页面中,直接调用内置对象都是合法的

B、内置对象是通过Web容器来实现和管理的

C、内置对象是自动载入的,因此不需要直接实例化

D、在JSP规范中定义了4种内置对象        九大内置对象,四大作用域

2

【单选题】

下列内置对象中用来表示页面上发生异常的是( B )

A、application

B、exception

C、page

D、config

3

【单选题】下列关于<jsp:forward>和response的sendRedirect方法进行重定向的说法中

错误的是( B )。

A、使用forward方法跳转,客户端浏览器的地址不变;而redirect方法跳转,地址栏会变

B、forward转发的页以及转发到的目标页面不能共享request里面的数据,但redirect方法可以

 forward可以共享,redirect不能

C、与redirect方法相比,forward方法的效率较高

D、forward方法只能在同一个Web应用程序内的资源之间转发请求

4

【单选题】下面哪项不是Jsp内置对象(D)

A、request

B、session

C、config

D、cookie

5

【单选题】下列关于Cookie的说法中正确的是( C )。

A、Cookie是绝对安全的,可以放心使用

B、Cookie帮助服务器端保存多个状态信息,使用服务器端专门分配存储资源

C、Cookie可以持久地保持一些和客户相关的信息

D、关闭客户端计算机后,重新打开就找不到Cookie文件了

点浏览器删除记录那里就大概知道是什么了

1

【单选题】下列说法中正确的是( A )。

A、session.setAttribute(String name, Object obj)中的第2个参数可以是自定义类型

B、session.getAttribute(String name)的返回值是Objeet类型,当用户从session中取出内容时不需要进行强制转换

C、session.removeAttribute(String name)可以将session中的所有内容删除

D、session中的数据不能被同一个客户在网站的一次会话过程中共享

2

【单选题】在服务器启动后就会自动创建application对象,这个对象会一直保存,直到服务器关闭为止。该说法(A)。

A、正确

B、错误

3

【单选题】下列关于application 的说法正确的是(  D )。

A、对于不同的客户端来说,服务器端的application对象是不同的

B、application对应的类是javax.servlet.ServletApplication  应该是javax.servlet.ServletContext

C、将内容放入application用application.getAttribute(String name)

D、显示某个页面被访问的次数可以用application对象

4

【单选题】

将一个Student类对象student存到名为studobj的请求作用域中,下面代码正确的是( B )。

A、request.addAttribute("student",studobj)

B、request.setAttribute("studobj ",student)

C、request.setAttribute("student",studobj)

D、request.getAttribute("studobj ",student)

5

【单选题】( B )对象提供了对JSP页面中所有对象及命名空间的访问

A、page

B、pageContext

C、config

D、exception

1

【单选题】如果是整个应用程序共享的数据,则适合放在(  B )中成为属性。

A、ServletConfig

B、ServletContext

C、ServletRequest

D、Session

2

【单选题】filter的实现接口是( C )。

A、javax.servlet

B、java.http

C、javax.servlet.Filter

D、javax.Filter

3

【单选题】

在web.xml中预先对Servlet进行初始化设置的代码如下:

<init-param>

<param-name>myWord</param–nane>

<param-value>hello</param-value>

</init-param>

则以下获取初始化参数的语句中正确的是(  D )。

A、StringmyWord=getInit("myWorld");

B、StringmyWord=getInit("myWord");

C、StringmyWord=getInitParameter("hello");

D、StringmyWord=getInitParameter("myWord");

4

【单选题】在Servlet中,HttpServletResponse的( C )方法用来把一个HTTP请求重定向到另外的URL。

A、sendURL

B、redirectURL()

C、sendRedirect()      记住这个单词

D、redirectResponse()

5

【单选题】

给定一个Servlet的代码片段如下:

public void doGet(HttpServletRequest request,HttpServletResponse response) throws

ServletException, I0Exception{

_____________

out.println("hikitty!");

out.close();

}

运行该Servlet时输出“hikitty!”,则应在此Servlet的下画线处填人的代码是( A )。

A、PrintWriter out=response.getWriter();

B、PrintWriter out=request.getWriter();

C、OutputStream out=response.getOutputStream();

D、OutputStream out=request.getWriter();

6

【单选题】

给定一个Servlet程序的代码片段如下:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException{

request.getSession().getAttribute("A");  //第2行

}

假定第2行返回的对象引用不是null,那么这个对象存储在( B )范围中。

A、page

B、session

C、request

D、application

7

【单选题】

在web.xml中定义了以下内容:

<servlet>

<servlet-name>Goodbye</servlet-name>

<servlet-class>cc.openhome.LogutServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>GoodBye</servlet–name>

<url-pattern>/goodbye</url-pattern>

</servlet-mapping>

下列可以正确访问该ServletURL的是( D )。

A、/goodbye,servlet

B、/LoguotServlet

C、/Goodbye

D、/goodbye

1

【单选题】下列关于JavaBean的说法正确的是( C )。

A、获取javabean的属性可以用<jsp:setProperty>动作

B、被引用的Bean文件的扩展名为.jsp

C、JavaBean的属性必须声明为private,方法必须声明为public      JavaBean规范

D、Bean文件放在任何目录下都可以被引用

2

【单选题】JavaBean可以通过相关jsp动作指令进行调用。下面( D )不是JavaBean可以使用的jsp动作指令。

A、<jsp:useBean>

B、<jsp:setProperty>

C、<jsp:getProperty>

D、<jsp:setParameter>

3

【单选题】JSP页面通过(  A  )识别Bean对象,可以在程序段中通过xx.method形式调用Bean中的set和get方法。

A、id

B、class

C、name

D、calssname

4

【单选题】( D )作用范围将使Bean对象保存在服务器的内存空间中,在服务器关闭后被移除。

A、page

B、request

C、session

D、application

5

【单选题】对于( A )作用范围的Bean,当客户离开这个页面时JSP引擎取消为客户的该页面分配的Bean,释放他所占的内存空间。

A、page

B、request

C、session

D、application

6

【单选题】关于JavaBean,下列叙述中不正确的是( C )。

A、JavaBean的类必须是具体的和公共的,并且具有无参数的构造器

B、JavaBean的类属性是私有的,要通过公共方法进行访问

C、JavaBean和Servlet一样,在使用之前必须在项目的web.xml中注册

D、JavaBean属性和表单控件名称能很好地耦合,得到表单提交的参数

7

【单选题】

以下DAO的组成部分( B )提供了与数据表一一对应的java类?

A、数据库连接类

B、VO

C、DAO接口

D、DAO实现类

8

【单选题】给定TheBean类,假设还没有创建TheBean类的实例,以下( C )JSP标准动语句能创建这个Bean的一个新实例,并把它存储在请求作用域

A、<jsp:useBean name="myBean" type="com.example.TheBean"/>

B、<jsp:takeBean name="myBean" type="com.example.TheBean"/>

C、<jsp:useBean id="myBean" class="com.example.TheBean" scope="request/>

D、<isp:takeBean id="myBean" class="com,example.TheBean" scope="request/>

1

【单选题】JSP Model2开发的系统中,实现控制器的是( C )

A、JSP

B、JavaBean

C、Servlet

D、HTML

2

【单选题】MVC不是一种( A )

A、编程语言

B、开发架构

C、设计模式

3

【单选题】下面关于MVC设计模式的特点描述中,错误的是( D )

A、有利于开发中的分工

B、使程序结构的耦合性降低

C、有利于组件的重用

D、只适用于Java Web应用程序的开发

4

【判断题】MVC设计模式就是指JSP Model2模型

5

【判断题】MVC与Web软件开发领域的三层体系结构是一回事

1

【单选题】以下关于EL和JSTL的说法错误的是( D )。

A、EL是一种简洁的数据访问语言

B、EL表达式的基本形式为${var}

C、JSTL的全称是JavaServerPagesStandardTagLibrary

D、JSTL只有Core核心标签库

2

【单选题】

 下面关于EL表达式${(1==2)?3:4}的运算结果,正确的是(D)

A、true

B、false

C、3

D、4

3

【单选题】下面有关EL中“.”和“[]”两种存取运算符的说法不正确的是( C )。

A、两者在某些情况下是等效的

B、“[]”运算符主要用来访问数组、列表或其他集合

C、如果要动态取值,两者都可以实现

D、当要存取的属性名称中包含一些特殊字符时,例如,或?等并非字母或数字的符号,就一定要使用“[]”

4

【单选题】

在以下这段代码中,页面运行后出现的语句是( B )。

<%@ pagecontentType="text/html;charset=gb2312"%>

<html>

<body>

<%

application.setAttribute("Msg","WelcomeApplication!");

pageContext.setAttribute("Msg","Welcomepage!");

session.setAttribute("Msg","WelcomeSession!");

%>

${Msg}<br>

</body>

</html>

A、WelcomeApplication!

B、Welcomepage!            page当前页面有效,优先级高,先查找

C、WelcomeSession!

D、Welcome!

5

【单选题】下面选项中,与request.getAttribute(“p”);等效的EL表达式是(D)

A、$<request.p>

B、$[requestScope.p]

C、$(request.p)

D、${requestScope.p}      认准符号

6

【单选题】

在下面的代码中,若想使输出结果为“好好学习”(斜体),应该填入( A )。

<%@ page language="java"contentType="text/html;charset=gb2312"%>

<%@taglibprefix=“c"uri="http://java.sun.com/jsp/jstl/core"%>

<html>

<body>

<%session.setAttribute("msg","<i>好好学习</i>");  %>

___________

</body>

</html>

A、<c:out value="$(msg)" escapeXml="false"></c:out><br>

B、<c:out value="$(msg)"></c:out><br>

C、<c:out value="$(msg)" escapeXml="true"></c:out><br>

D、以上都不正确

7

【单选题】

以下代码的输出为(B)

<% session.setAttribute("msg", "<B>这是<c:out>示例</B>");%>

<c:out value="${msg}" escapeXml="false"></c:out>

A、<B>这是<c:out>示例</B> escapeXml不写,默认是true,即忽略xml解析不编译,原样输出

B、这是示例                             当escapeXml为false,即用到解析,标签可编译,输出文本

C、这是<c:out>示例

D、<B>这是示例</B>

1

【单选题】

以下关于AJAX优势和劣势的描述,说法错误的是( D )。

A、改善表单验证方式,不再需要打开新页面,也不再需要将整个页面数据提交

B、应用仅由少量页面组成,大部分交互在页面之内完成,不需要切换整个页面

C、按需获取数据,每次只从服务器端获取需要的数据

D、AJAX可以取代传统的Web应用开发

2

【单选题】

使用AJAX技术编写Web应用程序,其使用( C )格式实现数据的传递。

A、HTML

B、XHTML

C、XML

D、TXT

4

【单选题】

在创建请求的代码片段xmlhttp.open("get","info.jsp?a=1")中,传递的参数值为( D )。

A、get

B、info.jsp

C、a

D、1

1

【单选题】下列对跨站脚本攻击的解释最准确的一项是( D )

A、引诱用户点击虚假网络链接的一种攻击方法

B、构造精妙的关系数据库的结构化查询语言对数据库进行非法的访问

C、一种很强大的木马攻击手段

D、将恶意代码嵌入到用户浏览的web网页中,从而达到恶意的目的

2

【单选题】为了防御XSS跨站脚本攻击,我们可以采用多种安全措施,但(C)是不可取的。

A、编写安全的代码:对用户数据进行严格检查过滤

B、可能情况下避免提交HTML代码

C、阻止用户向Web页面提交数据

D、即使必须允许提交特定HTML标签时,也必须对该标签的各属性进行仔细检查,避免引入javascript

3

【单选题】关于SQL注入说法正确的是(D)

A、SQL注入攻击是攻击者直接对web数据库的攻击

B、SQL注入攻击除了可以让攻击者绕过认证之外,不会再有其他危害

C、SQL注入漏洞,可以通过加固服务器来实现

D、SQL注入攻击,可以造成整个数据库全部泄露

4

【单选题】针对SQL注入和XSS跨站的说法中,哪些说法是不正确的(A)。

A、SQL注入的SQL命令在用户浏览器中执行,而XSS跨站的脚本在Web后台数据库中执行

B、XSS和SQL注入攻击中的攻击指令都是由黑客通过用户输入域注入,只不过XSS注入的是HTML代码(以后称脚本),而SQL注入注入的是SQL命令

C、XSS和SQL注入攻击都利用了Web服务器没有对用户输入数据进行严格的检查和有效过滤的缺陷

D、XSS攻击盗取Web终端用户的敏感数据,甚至控制用户终端操作,SQL注入攻击盗取Web后台数据库中的敏感数据,甚至控制整个数据库服务器

5

【多选题】对于SQL注入攻击的防御,可以采取哪些措施(ABCD)

A、不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接

B、不要把机密信息直接存放,加密或者hash掉密码和敏感的信息

C、不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取

D、对表单里的数据进行验证与过滤,在实际开发过程中可以单独列一个验证函数,该函数把每个要过滤的关键词如select,1=1等都列出来,然后每个表单提交时都调用这个函数

课件精简版

📕MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

JSP视图层,用来与用户打交道。负责接收用户的数据,以及显示数据给用户;

Servlet控制层,处理用户输入的数据,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;

JavaBean模型层,完成具体的业务工作,例如:开启、转账等。

📕响应重定向(SendRedirect)和请求转发(forward)的不同

1.从浏览器的地址显示上来看

forward方法属于服务器端去请求资源,服务器直接访问目标地址,并对该目标地址的响应内容进行读取,再把读取的内容发给浏览器,因此客户端浏览器的地址不变

sendRedirect是告诉客户端,使浏览器知道去请求哪一个地址,相当于客户端重新请求一遍。所以地址显示栏会变

2.从数据共享来看

forward 转发的页以及转发到的目标页面能够共享 request 里面的数据

sendRedirect 转发的页以及转发到的目标页面不能共享 request 里面的数据

3.从功能来看

sendRedirect 能够重定向到当前应用程序的其他源,而且还能够重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对 URL 重定向到其他站点的资源。

forward只能在同一个web应用程序内的资源之间转发请求,可以理解为服务器内部的一种。

4.从效率来看

forward效率较高,因为跳转仅发生在服务器端

sendRedirect相对较低,因为类似于再进行了一次请求

(太长了记不住版)forward跳转在服务器内部,只请求了一次。sendRedirect重定向告诉浏览器发起一个请求,并在响应中返回一个新的 URL 地址,请求了两次。

📕GET和POST方法区别

1.GET请求的数据会附在URL之后,在浏览器的地址栏中对用户可见。POST方式将需要传递数据放在form表单中,在浏览器的地址栏中对用户不可见

2.GET方式提交的数据相对较少,而POST没有限制,可传较大量的数据。

3.POST的安全性要比GET的安全性高。

4.GET方式数据可在浏览器的URL历史中缓存,而POST不会。

5.Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。

注:当表单不设method时,默认为GET。

📕网络应用程序开发常用的结构--B/S架构和C/S架构

C/S,分为客户机服务器两层,把应用软件安装在客户机端,通过网络与服务器端相互通信。如果客户端改动了(如界面丰富,功能增加),就必须通知所有的客户端重新安装,维护稍有不便

B/S,为浏览器/服务器模式,可以不用通知客户端安装某个软件,内容修改了,也不需要通知客户端升级。客户机上不用安装软件,只需要使用浏览器即可,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。

📕什么是JDBC

JDBC(Java DataBase Connectivity)就是Java数据库连接,就是用Java语言来操作数据库。

📕JDBC操作数据库的步骤

1.加载驱动程序Class.forName

2.建立连接对象:使用DriverManager类的getConnection()建立数据库连接对象

3.创建语句对象:Statement/PreparedStatement

4.获得SQL语句的执行结果:使用Statement对象的方法执行SQL语句(查询/增删改)

5.关闭建立的对象

📕JDBC中的核心类有:DriverManager、Connection、Statement,和ResultSet。

📕PreparedStatement的好处有哪些

1.防止SQL注入

2.提高代码的可读性,以及可维护性

3.提高效率 。

📕JSP九大内置对象,Request、Response、Session、Application、Config、Page、Out、Exception、pageContext。JSP的三个指令,page指令、 include指令、 taglib指令。

📕提交过程中显示乱码解决

1.将其转成 UTF-8 格式。

2.直接修改 request 的编码,即request.setCharacterEncoding("UTF-8")。

3.利用过滤器,可以对整个 Web 应用进行统一的编码过滤,比较方便。

📕Session和cookie的主要区别

Cookie是把用户的数据写给用户的浏览器

Session技术把用户的数据写到用户独占的session中,Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

Cookie存储在客户端,安全性较低,而Session数据存储在服务器端,对客户端不可见,相对较安全。Cookie适合存储少量的数据,常用于用户身份认证、记住登录状态等场景;Session适合存储较大的数据,常用于购物车功能、跨页面数据传递等场景。

📕Session失效

1.通过“超时限制”使Session失效。

2.public void invalidate()  用于使session强制失效。

📕完成Servlet的配置的两种方式

通过Web应用的配置文件web.xml

通过@WebServlet注解

📕JavaBean 的作用范围

Page只能在使用页面时使用,刷新页面会更新。

Request在用户对其发出请求转发时使用,刷新页面会更新。

Session一直存在于会话中,直至其终止或被删除为止,关闭浏览器后会更新。

Application在整个应用程序中均可使用,关闭服务器后会更新。

📕Ajax全称是Asynchronous Javascript and XML,即异步的JavaScript和 XML。Ajax是一种Web应用技术,该技术是在JavaScript、DOM、服务器配合下,实现浏览器向服务器发送异步请求。

📕相较于传统请求方式,Ajax异步请求的优势

1.请求数据量少

2.请求分散

3.用户体验优化

📕Ajax的应用举例

1.表单验证:在用户提交表单之前,使用 Ajax 异步请求将表单数据发送到服务器进行验证。服务器返回验证结果,可以实时显示错误消息或验证通过的信息,而无需刷新整个页面。

2.动态加载内容:在网页中,通过使用 Ajax 异步请求从服务器加载内容,例如新闻、文章、图片等。这样可以提高页面加载速度,并且用户可以在不刷新整个页面的情况下浏览更多内容。

3.实时搜索:当用户在搜索框中输入关键词时,使用 Ajax 异步请求将关键词发送到服务器,并根据服务器返回的结果实时更新搜索结果列表,无需刷新页面。

4.聊天应用:在聊天应用中,使用 Ajax 异步请求来发送和接收消息。当用户发送消息时,使用 Ajax 请求将消息发送到服务器,并将其广播给其他在线用户,以实现实时聊天功能。

📕Web安全防范措施

1. URL 操作攻击防范措施               修改 URL 中的参数或路径来试图访问未经授权的数据

对所有 URL 参数进行严格的验证和过滤,确保它们只包含合法的值。进行严格的服务器端访问控制检查,确保用户只能访问他们被授权的数据。避免在 URL 中传递敏感数据。

2. Web 跨站脚本攻击(XSS)防范措施                注入恶意脚本代码来攻击用户

对用户输入进行严格验证,并对输出内容进行 HTML 转义。使用 CSP 来限制能够执行的脚本来源。对所有动态生成的 HTML 内容进行适当的编码以防止注入攻击。

3. SQL 注入防范措施                                             注入恶意 SQL 代码来操控数据库

使用预编译语句和参数化查询来避免直接拼接 SQL 语句。严格验证和过滤用户输入,确保其不会包含恶意代码。使用对象关系映射(ORM)框架,它们通常会自动防范 SQL 注入。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: javaweb大作业题目可以选择一个具体的主题,然后在此主题下完成一个具有一定功能的网站或系统。以下是一个可能的题目示例: 题目:在线图书商城系统 作业要求: 1. 实现一个完整的在线图书商城系统,包括前台用户界面和后台管理界面; 2. 前台用户界面:用户可以浏览图书信息,进行搜索,选择图书进行购买,加入购物车等操作; 3. 后台管理界面:管理员可以对图书信息进行增删改查操作,管理用户信息,订单信息等; 4. 实现用户注册、登录、注销等基本功能,并对用户输入进行合法性验证; 5. 实现购物车功能,用户可以将多个图书添加到购物车,并进行结算; 6. 实现订单管理功能,包括下单、支付、取消等操作,并实时更新订单状态; 7. 实现图书分类功能,用户可以根据分类来浏览图书信息; 8. 实现图书评价和评论功能,用户可以对购买过的图书进行评价和评论; 9. 具备安全性,例如加密用户密码,防止SQL注入等; 10. 使用Java语言编写,采用MVC设计模式,使用SpringMVC和MyBatis等框架。 该大作业题目涵盖了JavaWeb开发的常见要求,通过实现一个在线图书商城系统,可以综合运用JavaWeb的相关知识和技术,包括前后台的界面设计、数据库的建立和操作、用户的注册和登录、业务逻辑的实现等。通过完成该作业,可以加深对JavaWeb开发的理解和实践能力的提升。 ### 回答2: Javaweb大作业题目可以选择以下几个方向来设计和实现: 1. 网上商城:实现一个完整的网上商城系统,包括商品展示、购物车、下单、支付及订单管理等功能。可以实现用户注册、登录、浏览商品、添加商品到购物车、结算并下单,然后通过第三方支付完成支付流程。同时,还可以实现订单管理功能,包括查看订单、取消订单、修改订单状态等。 2. 社交平台:开发一个类似于微博或微信朋友圈的社交平台,用户可以注册账号、登录、发布动态、点赞、评论等。可以实现用户间的关注和私信功能,提供搜索和推荐功能,让用户可以发现和关注自己感兴趣的人和动态。 3. 在线教育平台:实现一个在线教育平台,包括课程发布、选课、播放视频、在线测试等功能。可以实现教师用户发布课程和学生用户选课学习的功能,提供视频播放和在线测试等功能,让学生可以在线学习和获取反馈。 4. 酒店预订系统:开发一个酒店预订系统,包括酒店信息展示、房间预订、订单管理等功能。可以实现用户浏览酒店信息、预订房间并完成支付,支持用户查看和管理订单。 总之,Javaweb大作业的题目可以根据自己的兴趣和技术能力进行选择。选题后需要考虑系统的功能设计、数据库设计、前后端的交互和实现等方面,确保最终能够完成一个稳定、高效的系统。 ### 回答3: 题目:基于javaweb的在线购物系统设计和实现 题目描述:设计并实现一个基于javaweb的在线购物系统,满足用户浏览商品、加入购物车、下订单、支付等功能。系统应包括用户注册登录模块、商品分类浏览模块、购物车管理模块、订单管理模块、支付模块以及后台管理模块。 系统要求: 1. 用户注册登录模块:实现用户的注册和登录功能,用户注册时需要验证用户名的唯一性。 2. 商品分类浏览模块:实现商品的分类管理和展示功能,用户可以根据自己的需求浏览并查找商品。 3. 购物车管理模块:用户可以将喜欢的商品加入购物车中,可以实现多商品的添加、删除和修改数量等功能。 4. 订单管理模块:用户可以对购物车中的商品进行下单操作,生成订单并记录订单信息。 5. 支付模块:用户可以选择不同的支付方式进行订单支付,支付成功后,系统应更新订单状态并通知用户支付结果。 6. 后台管理模块:管理员可以对商品进行管理,包括商品的增删改查功能,同时可以查看订单信息和处理用户投诉等操作。 系统实现应注意以下几点: 1. 开发环境使用Eclipse或IntelliJ IDEA。 2. 使用MySQL数据库存储用户、商品和订单等相关信息。 3. 使用Tomcat作为服务器进行部署。 4. 使用JSP+Servlet+JavaBean实现网页前端与后端的数据交互和页面渲染。 5. 采用MVC架构,实现代码的清晰划分和模块化开发。 通过该大作业的设计和实现,可以加深对javaweb开发知识的理解和掌握,同时提高实际开发能力和解决问题的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值