1.利用eclipse新建的Java web项目没有部署描述符web.xml文件怎么办?
右键项目名称->Java EE Tools->Generate Deployment descriptor stub
2.项目发布时,src文件夹里的java源文件编译后生成的.class字节码文件在哪个文件夹里?
发布到tomcat时(在eclipse里启动tomcat),src文件夹里的java文件经过编译后,会把.class文件放在WEB-INF文件夹里的classes文件夹中,编译时会自动生成。
3.JavaScript中,history.go(-1)和History.back()的区别?
go(-1): 返回上一页,原页面表单中的内容会丢失;back(-1):返回上一页,原页表表单中的内容会保留,一般还是back(-1)用的多。
window.location.reload() //刷新
window.history.go(1) //前进
window.history.go(-1) //后退
window.history.forward() //前进
window.history.back() 后退+刷新
4.Javaweb项目开发中中文显示乱码问题,该如何解决?
Jsp前台页面出现乱码:
①最主要原因就是jsp页面编码问题,给页面添加如下即可解决。
外部JS(JavaScript文件)出现乱码:
①这种比较头疼,调用的外部*.js(独立的JavaScript),其中js文件中涉及向前台输入中文,比方:$("#divNameError").html("请输入姓名");document.getElementById("theClock").innerHTML=”你好”;显示乱码,而如果把js代码直接写在前端jsp页面中就正常显示,导致的原因是*.js与*.jsp文件编码不统一导致的,可以通过NotePad++转换编码即可。
servlet后台获取前端数据出现乱码:
①后台servlet添加:request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
②从不同编码的前台获取数据添加:String linename = newString(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
③还有一种就是通过form表单提交数据时,没有写method属性,导致后台一直获取到乱码。
比较通用的方法可以,直接更改Tomcat server.xml文件,
5.WEB-INF下如何实现*.jsp文件的互相跳转?
我们知道WEB-INF权限比较高,不允许直接的公共访问,也就意味着我们得新建servlet形式来进行访问。但对于那种只要求实现跳转页面需求而不需要后台进行数据处理的,显然这种方式比较low。那能否在不建任何后台中间件的情况下,实现页面的跳转呢?其实是可以的。
在web.xml文件下配置:
前台的获取方式为:
注意:其中<jsp-file>名为实际跳转页面的路径,文件必须存在;而<url-pattern>名无特别限制可以任取,有意义就行。前台的获取采用项目名+url名的形式,这点比较特殊。
这种方法不是特别推荐,最好的方式是新建一个共通的servlet,通过传参的形式实现。
后台共通servlet代码:
前台代码:
6.输入框获取焦点阴影特效的实现?(边框效果)
box-shadow 属性向框添加一个或多个阴影。基本语法是{box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscolor}对象选择器 {box-shadow:[投影方式] X轴偏移量 Y轴偏移量阴影模糊半径阴影扩展半径阴影颜色}
7. 用超链接进行页面跳转时日历WdatePicker()控件不可用,而单独运行此页面时却可以使用,这是为什么?
如果将*.jsp放在WEB-INF目录外,采用超链接href的方式确实可以正常跳转页面,但跳转到的页面,所有外部调用的js都没有加载进来,所以是不可用的。建议如果跳转页面存在js加载,最好采用servlet后台方式实现页面跳转。
8.Jsp页面显示时间,并同步实时更新如何实现?
9.Jsp图片轮播的实现,并且可以进行鼠标点击控制。下面代码采用jQuery实现,比较通用。
$(function(){
//鼠标滑过banner,左右按钮进行显示和隐藏
$(".banner").hover(function(){
$(".lr").show();
},function(){
$(".lr").hide();
});
//点击下面的小按钮(小按钮为列表li),图片进行左右切换效果
$(".anniu li").click(function(){
//jQuery 遍历,siblings()获得匹配集合中每个元素的同胞。removeClass()方法移除被选元素
$(this).addClass("on").siblings().removeClass("on");
var num=$(this).index();
//jQuery animate()方法,动画渐变。 marginLeft元素的左外边距,slow速度等级
$(".pic").animate({marginLeft:-200*num},"slow");
});
//图片自动轮播效果
var a=0;
varautomatic=setInterval(function(){
a++;
a=a%5;
$(".pic").animate({marginLeft:-200*a},"slow");
$(".anniuli").eq(a).addClass("on").siblings().removeClass("on");
},6000);
//点击左右按钮,图片进行切换效果
$(".pre").click(function(){
a--;
a=(a+5)%5;
$(".pic").animate({marginLeft:-200*a},"slow");
$(".anniuli").eq(a).addClass("on").siblings().removeClass("on");
});
$(".next").click(function(){
a++;
a=a%5;
$(".pic").animate({marginLeft:-200*a},"slow");
$(".anniuli").eq(a).addClass("on").siblings().removeClass("on");
});
});
头像
头像
头像
头像
头像
10. button如何按钮实现页面传参、跳转?
11.从后台取值,判断前台单选按钮是否选中的实现方法。
12. jsp页面中输出百分比如何实现?
从代码最简方面考虑可以采用jstl提供的方法,需要导入<%@ taglib prefix="f"uri="http://java.sun.com/jsp/jstl/fmt"%>
13.比方说,数据插入到数据库成功。后台如何向前台输出提示信息,或者后台如何调用js到前台?
14. eclipse导入jQuery-1.8.2.min.js老是报错,显示红色的叉叉,但不影响使用。有什么办法可以去掉红色的错误吗?
去除编译器js的验证:Window 删除.project文件中的 此时错误还没消失,需要删除项目,再重新导入到工作区即可。 15.前端form表单的提交验证,最好采用普通的button按钮,书写提交事件;而不推荐使用submit,主要是由于js如果出现错误它会直接跳出而不执行往后代码,从而导致js没有验证也提交。具体案例如下: 如果以上function函数中,由于疏忽拼写错误等因素导致代码直接跳出,没有进行验证而直接进行submit提交,这样岂不是一个巨大的bug?最好的方式是type改为button,进行手动的提交,这样即使js代码出错,form表单也不会提交。 16. 要求使用cookie保存用户登录信息,并在前端Center.jsp页面中显示。主要application和session不能满足要求(不想频繁传参于前后台),主要因为通过Center跳转到其它页面,然后采用页面重定向返回Center页面时,创建的用户登录信息会消失。Session是由于服务器认为打开的新窗体而创建了新的session,认为不是同一个对象;而application是由于Tomcat重新加载而消失。 Controller层cookie创建: 前端jsp页面的获取: 注意:jsp页面关于cookie的操作需要引入jquery.cookie.js,否则会获取不到。 17.使用js进行表单验证时,使用document.getElementById("divPwdError").hide();属性一致报错,这是为什么? hide()和show()对div进行显示和隐藏时,必须导入jquery-1.8.2.min.js,因为它为jQuery特定方法,原生 jsp不支持这么方法,可用document.getElementById("divPwdError ").style.visibility="hidden";//隐藏 document.getElementById("divPwdError").style.visibility="visible"; //显示 或: document.getElementById("typediv1").style.display="none";//隐藏 document.getElementById("typediv1").style.display="";//显示 js实现点击按钮显示和隐藏 functionshowhidediv(id){ varsbtitle=document.getElementById(id); if(sbtitle){ if(sbtitle.style.display=='block'){ sbtitle.style.display='none'; }else{ sbtitle.style.display='block'; } } } 18.js想获取jsp页面某个标签的值时,发现标签是div或者其它什么标签并没有value属性怎么办?还是实行不了? 答案可以实现:
Js可以通过attr("value")方法获取var user = $("#divuser").attr("value");
19.后台controller层cookie的创建,以及前台cookie的获取?
Controller层创建cookie实现(创建到服务器端):
Jsp前台页面获取(从服务器端获取):
Jsp前台页面获取(从客户端获取):
19.eclipse如何导入apache Tomcat包?
Build Path ->Configure Build Path -> Add Variable -> Server Runtime
JavaSpring MVC框架开发
1.字符串String转map?
确认你的字符串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar两个包来自动解析解析。
使用Gson更简单些,只需要导入一个包就可以,但是他如果使用Object解析到int型的话或自动转成double型,需要定义一个准确的类来解析,不能直接使用Object。示例:
Gson gson = new Gson();
Map
map = gson.fromJson(str, map.getClass());
使用json-lib包的话需要导入更多的包,需要额外导入commons-lang.jar、ezmorph-1.0.4.jar、commons-logging-1.1.1.jar、commons-collections.jar、commons-beanutils.jar这5个包。解析示例如下:
JSONObject jb = JSONObject.fromObject(str);
Map
如果你的字符串不是json格式,那你就需要自己使用split分割字符串,例如:
2.*.jsp页面点击按钮,弹出输入框,并将输入参数传入后台Controller层执行,该的如何实现?
3.jsp页面中,button按钮实现删除功能,要求:①弹出确认框;②执行后台Controller层的操作,并传入参数;③要求通用,在foreach语句中也可以执行,并且参数根据点击的位置进行变化。④不设隐藏域,隐藏域影响安全性。
4.使用spring MVC框架开发时,页面跳转最容易出现路径问题,掌握下面几个方法即可解决。
<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串。如果项目为abc,<%=request.getContextPath()% > 将得到abc,服务器端的路径则会自动加上, 是指当前路径下的这个xxx.jsp页面,有时候也可以在head里设置html:base来解决路径的问题,不过用的最多的还是request.getContextPath。在js文件中得到request.getContextPath()的值,不想在JSP中写太多的JavaScript代码:一种方法是用hidden: 再就是在本页面的js里面也是可以使用Scriptlet来赋值的: var a = '<%=request.getContextPath()>'
参考servlet中的接口:
request.getScheme();返回的协议名称,默认是http
request.getServerName()返回的是你浏览器中显示的主机名
getServerPort()获取服务器端口号
实际应用中,一般用来解决jsp测试和生产环境路径不同的问题:
<%
String appContext= request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort()+ appContext;
%>
2.java中各注解的含义?
Oracle数据的操作
1. oracle数据库创建的连接,再客户端什么文件夹下可以配置?
在客户端D:\ProgramFiles\PLSQL Developer\instantclient_11_2\tnsnames.ora下可以配置,也可以配置连接外部的数据库。
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl )
)
)
2.
// 附 : 常用的正则表达式:
// 匹配特定数字:
// ^[1-9]d*$ //匹配正整数
// ^-[1-9]d*$ //匹配负整数
// ^-?[1-9]d*$ //匹配整数
// ^[1-9]d*|0$ //匹配非负整数(正整数 +0)
// ^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
// ^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
// ^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
// ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
// ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
// ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
// 评注:处理大量数据时有用,具体应用时注意修正
//
// 匹配特定字符串:
// ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
// ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
// ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
// ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
// ^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
//
// 在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
//
// 只能输入数字:“^[0-9]*$”
// 只能输入n位的数字:“^d{n}$”
// 只能输入至少n位数字:“^d{n,}$”
// 只能输入m-n位的数字:“^d{m,n}$”
// 只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
// 只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
// 只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
// 只能输入非零的正整数:“^+?[1-9][0-9]*$”
// 只能输入非零的负整数:“^-[1-9][0-9]*$”
// 只能输入长度为3的字符:“^.{3}$”
// 只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
// 只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
// 只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
// 只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
// 只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
// 验证用户密码:“^[a-zA-Z]\\w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
//
// 只能包含字符、数字和下划线。
// 验证是否含有^%&’,;=?$”等字符:“[^%&’,;=?$x22]+”
// 只能输入汉字:“^[u4e00-u9fa5],{0,}$”
// 验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
// 验证InternetURL:“^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$”
// 验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
//
// 正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
//
// “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
// 验证身份证号(15位或18位数字):“^d{15}|d{}18$”
// 验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
// 验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”正确格式为:“01”“09”和“1”“31”。
//
// 匹配中文字符的正则表达式: [u4e00-u9fa5]
// 匹配双字节字符(包括汉字在内):[^x00-xff]
// 匹配空行的正则表达式:n[s| ]*r
// 匹配HTML标记的正则表达式:/<(.*)>.*|< (.*) />/
// 匹配首尾空格的正则表达式:(^s*)|(s*$)
// 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
// 匹配网址URL的正则表达式:^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$