您的位置:首页 > Web前端 > JavaScript

极其简单的一个JSP小功能

2016-10-24 19:32 113 查看
简介

本人目前正在念大二,软件专业,目前在校学习AndroidJSPHTML,不过学校教学环境质量很渣,(我说我们这有电脑FPS最高才到12的机房你敢信?)只能靠自己一点一点摸索,遇到问题身边也没什么能得到回馈帮我解决问题的人(包括老师),于是乎基本上都是在各大网站上游荡寻找自己都不知道在找什么的知识点,通常都是在工作室一坐一天,也是迷,好了,说多了都是泪,接下来直接进入正题。

正文

在我刚接触HTML的时候,我自己尝试着做了一个百度的仿站,加了一些看上去还不错的一些CSS效果,做完之后成就感十足,但是唯一美中不足的就是那个搜索框没法像百度首页那样直接对内容进行搜索,后来在学校正式学习之后,了解了有关WEB的知识,就做出了这个简单的提交搜索内容到百度的小功能

<html>
<head>
<title>My JSP 'SearchInput.jsp' starting page</title>
<script type="text/javascript">
/*此处js脚本的作用是在进入网页时将焦点聚焦在输入框上*/
window.onload = function()
{
document.getElementById("si").focus();
}
</script>
</head>

<body>
<center>
<form action="" method="get">
<!--表单的数据提交给自己-->
<input name="search" id="si" placeholder="Search" type="text">
<input name="sub" id="sbtn" value="submit" type="submit">
</form>
</center>


JSP部分:

<%
String inputText=request.getParameter("search");
/*request对象获取表单提交的输入框中的数据,放入字符串中*/

if(inputText!=null){
/*判断字符串的对象是否为空,不为空再执行*/


那么这里可能会出现一个疑问,为什么要加这个判断

因为这个小测试项目是写在一个JSP文件中的,页面在一加载的时候request对象就会直接对输入框的内容进行提取,然而此时输入框对象还什么都没有,他是一个为null的空值,然而将一个null的字符串进行相关的方法调用时,必然会出现500空指针错误,所以在此处加一个条件,对字符串对象是否为空来进行判断,只有通过表单的提交之后,接过来的字符串才是长度为0的字符串”“,而不是null。

如果想要添加让内容长度不为0的判断的话也许要尝试这样写:

if(string!=null && !string.equals("")){
some codes...;
}


但是,到了这里又会出现问题,那便是将两个判断的顺序颠倒过来会怎样?

if(!string.equals("") && string!=null){
some codes...;
}


那么这样写的结果便又会出现500空指针异常,很显然,这和上面所说的问题是一样的,在最先判断的equals方法中,我们又将null的字符串对象传递到java方法中去了,用空的字符串对象去进行字符串对比,这显然是不可以的,于是错误便这样产生了。

但是为什么第一种顺序就行了呢?

在经过一个简单的输入测试之后,我们可以发现,在字符串执行完!=null的判断之后再去判断equals方法是可以输出他的,值为null,然而我们再次提交输出的时候字符串就变成了长度为0的串”“,这说明字符串在判断调用的过程中已经被里面的方法赋了初值,使得后面的判断得以进行

然而这有些麻烦了,所以我们通常可以在jsp里面只是写后台功能,前台的外观表现都交给html,这也是我自己琢磨了好久才想通的(苦笑.jpg)

那么接下来就是将我们得到的搜索内容通过response对象进行重定向,把字符串放入百度的搜索内容链接格式中,当然还可以加很多参数,不过那些我还没弄太懂,就不乱写了

response.sendRedirect("http://www.baidu.com/s?wd="+inputText.trim()+"");
}
%>


</body>
</html>


结语

那么就是这样了,这是我的第一篇博客记录,以后也会常来更新整理日常学习的知识点和一些无聊的吐槽与分享,一个爬行中的Coder,欢迎关注~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html jsp 学生党