极其简单的一个JSP小功能
2016-10-24 19:32
113 查看
简介
本人目前正在念大二,软件专业,目前在校学习Android,JSP,HTML,不过学校教学环境质量很渣,(我说我们这有电脑FPS最高才到12的机房你敢信?)只能靠自己一点一点摸索,遇到问题身边也没什么能得到回馈帮我解决问题的人(包括老师),于是乎基本上都是在各大网站上游荡寻找自己都不知道在找什么的知识点,通常都是在工作室一坐一天,也是迷,好了,说多了都是泪,接下来直接进入正题。
正文
在我刚接触HTML的时候,我自己尝试着做了一个百度的仿站,加了一些看上去还不错的一些CSS效果,做完之后成就感十足,但是唯一美中不足的就是那个搜索框没法像百度首页那样直接对内容进行搜索,后来在学校正式学习之后,了解了有关WEB的知识,就做出了这个简单的提交搜索内容到百度的小功能
JSP部分:
那么这里可能会出现一个疑问,为什么要加这个判断
因为这个小测试项目是写在一个JSP文件中的,页面在一加载的时候request对象就会直接对输入框的内容进行提取,然而此时输入框对象还什么都没有,他是一个为null的空值,然而将一个null的字符串进行相关的方法调用时,必然会出现500空指针错误,所以在此处加一个条件,对字符串对象是否为空来进行判断,只有通过表单的提交之后,接过来的字符串才是长度为0的字符串”“,而不是null。
如果想要添加让内容长度不为0的判断的话也许要尝试这样写:
但是,到了这里又会出现问题,那便是将两个判断的顺序颠倒过来会怎样?
那么这样写的结果便又会出现500空指针异常,很显然,这和上面所说的问题是一样的,在最先判断的equals方法中,我们又将null的字符串对象传递到java方法中去了,用空的字符串对象去进行字符串对比,这显然是不可以的,于是错误便这样产生了。
但是为什么第一种顺序就行了呢?
在经过一个简单的输入测试之后,我们可以发现,在字符串执行完!=null的判断之后再去判断equals方法是可以输出他的,值为null,然而我们再次提交输出的时候字符串就变成了长度为0的串”“,这说明字符串在判断调用的过程中已经被里面的方法赋了初值,使得后面的判断得以进行
然而这有些麻烦了,所以我们通常可以在jsp里面只是写后台功能,前台的外观表现都交给html,这也是我自己琢磨了好久才想通的(苦笑.jpg)
那么接下来就是将我们得到的搜索内容通过response对象进行重定向,把字符串放入百度的搜索内容链接格式中,当然还可以加很多参数,不过那些我还没弄太懂,就不乱写了
结语
那么就是这样了,这是我的第一篇博客记录,以后也会常来更新整理日常学习的知识点和一些无聊的吐槽与分享,一个爬行中的Coder,欢迎关注~
本人目前正在念大二,软件专业,目前在校学习Android,JSP,HTML,不过学校教学环境质量很渣,(我说我们这有电脑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,欢迎关注~
相关文章推荐
- 自己写的一个计算器,极其简单,并且很多功能不完备
- myeclips+mysql+jsp做的一个简单的查询功能
- [ASP.NET]制作一个简单的多页Tab功能
- 一个简单在jsp页面中连接sqlserver数据库的小实例
- 我写的一个简单触发器,实现计票功能
- 如何在Cuyahoga中新增一个简单的功能模块
- 一个非常简单的分页技术MYSQL+JSP 利用了mysql的LIMIT参数
- 一个功能极其强大的PHP树类 (目录树能做的和windows资源管理器中一模一样)
- 一个简单的登陆网页设计(JSP+MySQL+Tomcat)
- 举一个简单例子来说明:如何在JSP中使用JavaBean
- 一个非常简单的分页技术MYSQL+JSP 利用了mysql的LIMIT参数
- 一个简单在jsp页面中连接sqlserver数据库的小实例
- 简单却常用的一个SQL功能:1句SQL语句返回多个字段值到指定变量
- 一个简单的文件上传功能控件(原创)
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 一个集成输入查找功能的的java简单程序
- 一个简单的iTextSharp的ASP.NET的例子(根据iText的jsp版本转换而来)
- 一个较简单的js实现checkbox的全选与全不选功能
- OpenCms JSP 模板开发——创建一个简单的JSP模板
- 一个非常简单的分页技术MYSQL+JSP 利用了mysql的LIMIT参数