面试

1.jsphtml的区别

1jsp相当于在html中嵌入java脚本,

2jsp是动态的,html是静态的(静态不需要服务器的支持,动态必须有服务器的支持才能运行;html文件双击就能运行,jsp双击只能看到代码,并不能看到运行效果)

动态的含义:需要服务器的支持;内容是经常发生改变的

3)一个页面需要动态取数据,内容发生改变用jsp;不发生改变如登陆页面,用html也可以用jsp,只不过服务器出来的时候需要先变成.java文件再变成.class才能运行。

2.jspservlet的区别

1jsp本质就是servlet,即servlet也可以替换jsp,但用servlet做显示会非常麻烦,理论上jsp也可替换servlet,十几年前,使用jsp+javabean,但违反了分层、分工思想。所以Jsp仅做显示层,jsp中尽量少出现业务逻辑代码

2)按照mvc分层思想,servletmvc中属于控制层,jspmvc中做view

3.javaEE中有哪几种页面跳转方式

1request.getRequestDispatcher("/main.jsp").forward(request.response);

<1>相当于是在服务器端的跳转,是一个请求;

<2>不丢值,刚才发送过来的request是一个request,所以在这一个requestsetAttribute()时,这个值在下一个页面是可以取到的

<3>用此种页面跳转方式,可以直接写要去跳转的路径,因为是在服务器端的跳转,不用加工程名

2response.sendRedirect("/projectName/main.jsp");

<1>相当于是客户重定向;

<2>丢值,客户重定向相当于又来了一个新的请求,前面一个request的值就没有了,意味着如果是request.setAttribute()那么通过此种页面跳转方式,在main.jsprequest.getAttribute()是找不到上一页面设置的值得。

<3>跳转路径必须加projectName工程名

<4>有人使用此种方法,因为跳转页面后,上一页面的request.setAttribute()找不到了。所以他在上一页面用session.setAttribute,跳转后用session.getAttribute()来获取。这是这种做法不对的。在一个请求里的数据是说一个请求完了以后,这个资源可能就被释放了,若放到session,他的生命周期就长了,会耗费资源耗费空间,做项目时如果把值放在request中就能满足要求就不要往session里放,如果把值放在session中就能满足要求就不要往servlet contest里放,

 

如果往下个页面传值,必须用第一种方式,若不传值,只跳转就可以用第二种,

例如:session防止非法登录,如果非法得访问我们保护了的资源,要重新定位到登陆页面,所以里面用了response.sendRedirect("/login.jsp");

4.访问servlet2种方式及给servlet传参

1)以form表单的方式

<html>

<body>

<form name="" action="/JspDemo/loginServlet" method="post">

<input type="text" name="userName" />

<input type="submit"/>

<input type="hidden" name="actonCode"/>

</form>

</body>

</html>

 

method默认方式是get,

点击submit,访问你loginServlet

传参:

方法一:<input type="text" name="userName" />

        到了servletrequest.getParameter("userName")得到值

方法二:<input type="hidden" name="actonCode"/>

        到了servletrequest.getParameter("actonCode")得到值

2)超级链接方式

<html>

<body>

<a href="/JspDemo/loginServlet">login</a>

</body>

</html>

 

传参:<ahref="/JspDemo/loginServlet?userName='Tom'&actionCode='login'">login</a>

 

3)直接在浏览器里回车

http://127.0.0.1:9090/JspDemo/loginServelt

 

5.静态include和动态include

静态:<%@includefile="footer.jsp"%>

动态:<jsp:includepage="footer.jsp"/>

 

静态Include是把要包含进来的文件一同进行解析,生成.java文件

动态include是在调用当前文件时,动态调用footer.jsp(即所要包含的页面)

 

如果所包含进来的文件所发生改变的概率较小,用静态Include,否则用动态Include


 

6.jsp中的隐含对象

Request

Response

pageContext

Session

Application

Out

Config

Page

exception



session存在了如何销毁

       










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值