java面试笔试题

 

1.展示如下表格的HTML代码:

A1

A2

C1

B1

B2

合计

C2

 

 

 

 

<table border="1" width="150">

   <tr>

      <td>A1</td>

      <td>A2</td>

      <td rowspan="2">C1</td>

   </tr>

   <tr>

      <td>B1</td>

      <td>B2</td>

   </tr>

   <tr>

      <td colspan="2">合计</td>

      <td>C2</td>

   </tr>

   </table>

jsp表单method为GET方式和POST方式有什么区别?

(1)get和post的区别

<form name="regForm" action="动作" method="提交方式"></form>
  • 1
  • 2

get: 以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性较低但效率比post方式高,适合提交数据量不 大、安全性不高的数据。比如:搜索、查询等功能。

post: 将用户提交的信息封装在 HTML HEADER 内,适合提交数据量大、安全性高的用户信息。比如:注册、修改、上传等功能。

js的基础对象有哪些?Window和document的常用方法有哪些?

BOM对象(window:location地址、history历史、document文档、screen窗口、navigator帮助)包含了DOM对象(document)

Window对象

-常用方法:

alert(str)提示对话框,显示str字符串的内容

confirm(str)确定对话框,显示str字符串的内容

setTimeout()一次性定时器,clearTimeout()

setInterval()周期性定时器,clearInterval()

DOM概述

--js能够改变页面中的所有HTML元素

--js能够改变页面中的所有HTML属性

--js能够改变页面中的所有CSS样式

--js能够对页面中的所有事件作出反应

元素节点的内容:

-innerText

-innerHTML

节点属性:

getAttribute()

setAttribute()

removeAttribute()

 

-document.getElementById();通过指定ID返回元素节点

-document.getElementsByTagName();通过标签名称查询,返回所有元素

-document.getElementByName()通过name属性查询

 

 

详细描述SpringMVC中contoller、service、view(jsp)分别的作用是什么?

1)Controller层:负责具体业务模块流程的控制,即调用Service层的接口来控制业务流程。负责url映射(action)。

2)Dao层:负责数据持久化,与数据库进行联络的任务都封装在其中,Dao层的数据源以及相关的数据库连接参数都在Spring配置文件中进行配置。Dao接口中的方法都大同小异,因为对数据库的基本操作类似:insert、delete、update,select。                  在Dao层定义的一些方法,在Service层并没有被使用的情况:Dao层的操作经过抽象后基本都是通用的,在Dao层完成相关方法的定义,有利于支持后期Service层的扩展。(与相应的mapper对应)

3)Entity层:java对象,与数据库表一一对应,是其对应的实现类。即一个Entity就是对应表中的一条记录。

4)Service层:建立在DAO层之上,Controller层之下。调用Dao层的接口,为Controller层提供接口。负责业务模块的逻辑应用设计,首先设计接口,再设计其实现的类。

5)View层:表示层,负责前端jsp页面表示。

面向接口编程。表示层调用控制层,控制层调用业务层,业务层调用数据访问层。

Dao层设计与设计的数据库表,和实现类(对应的Entity或者JavaBean)一一对应。

View层与Controller层结合紧密,需要二者结合协同开发。Service层、Dao层和其他层次耦合很低,完全可以单独开发。

  1. 把值从view(jsp)传给Controller有哪几种方法?各适用于什么情况?

MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下:

一、Controller----------->View

1、ViewData

获取或设置一个字典,其中包含在控制器和视图之间传递的数据。使用ViewData是采用键值对的形式,对所定义的数据进行传递。在View中会自动识别到拥有唯一键值的ViewData,并将数据显示出来。

例子:

1

2

3

4

5

6

7

8

9

10

public ActionResult()

{

            List<Models.BlogArticle> list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList();

            //2将集合数据传给视图

            // ViewBag.DataList = list;//viewBag形式

            //利用viewdata形式

            ViewData["DataList"] = list;

 

            return View();

}

视图中接收:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<table id="tbList">

        <tr>

            <th>id</th>

            <th>标题</th>

            <th>分类</th>

            <th>状态</th>

            <th>时间</th>

            <th>操作</th>

        </tr>

 

 

        <!--遍历Action方法,设置给ViewData的集合数据,生成html代码-->

        @foreach (BlogArticle a in ViewData["DataList"] as List<BlogArticle>)

        {

            <tr>

                <td>@a.AId </td>

                <td>@a.ATitle </td>

                <td>@a.ACate</td>

                <td>@a.AStatu </td>

                <td>@a.AUpdatetime </td>

                <td>@a.AContent </td>

                <td>

                    <a href="javascript:del(@a.AId)">删</a>

                    <a href="/home/modify/@a.AId">改</a>

                </td>

             </tr>

 

        }

    </table>

2、ViewBag

获取视图包,允许自定义属性进行赋值,属于动态类型(dynamic),以ViewBag.属性=属性值得方式进行传值,其实这里跟ViewData的使用原理类似。

例子:

1

2

3

4

public ActionResult Index()

{

         ViewBag.Title="Hello!";

}

视图中接收

<h1>ViewBag.Title</h1>

3、其他方式

在从controller向view传值时,除了以上两种方式外,还包括一些链接的方式,例如页面跳转的方式RedirectToAction,还有RenderAction等自动接收等方式。

二、从View-------->Controller

1、其实在这种情况下,通常会选择利用ajax来通过get或者post进行提交。如果采用最原始的JS来做,就要用到之前总结的ajax经典的五步工作法了,但是通常我们采用JQuery封装好的ajax提交方式。

即$.ajax({type,url,data,success:function(){})其中最常用的就是这几个参数属性了。

2、通过Get方式+路由配置+id值进行提交数据

1

2

<td>

                    <a href="javascript:del(@a.AId)">删</a></td>

JS:

1

2

3

4

5

6

7

<script type="text/javascript">

       function del(id) {

           if (confirm("您确定要删除吗?亲~~")) {

               window.location = "/home/del/" + id;//通过get方式采用路由配置+id的形式

           }

       }

    </script>

三、Action---------->Action

前面两种传值方式都是在view和Controller之间进行数据传递,那么如果某一个业务需要用到后台的两个Action,并且需要再这两个Action之间进行数据传递,这时需要用到另一个概念TempData:获取要传递到视图的临时数据.使用时,需要注意TempData的生命周期,只在第一次请求Action时临时数据存在,之后自动变为NULL,具体的使用与ViewData相同,属于键值对的数据字典类。

1

2

3

4

5

6

7

8

9

10

public ActionResult Index()

    {

        this.TempData["str"]="wyy";

        return View();

    }

    public ActionResult Index2()

    {

        string name=this.TempData["str"];

        return Content(name);

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值