JSP(Java Server Pages)的BUG之旅

注意事项

JSP是servlet程序,会被编译成.class文件和serlet程序类似需要配置在服务器端,不能和html文件一样直接使用浏览器打开,需要先启动tomcat服务器才能使用浏览器打开,但是效果看似和html一样,但是可以处理数据等。
感觉像前后端的冗杂。

否则会出现

There is no configured/running web-servers found! Please, run any web-configuration and hit the Refresh button!
在这里插入图片描述
因为不是html文件所以不能使用浏览器直接编译展示,需要配置在服务端。

request.getParameter(“name”)错误

括号内应该使用name属性,id属性会出错。

汉字乱码错误

因为请求到达JSP文件的时候是对于汉字使用ISO-8859-1编码的,传回客户端的时候需要改为UTF-8编码,因为不同编码对应的汉字不同。

//注意:需要转为字节型才可以,因为规定如此
    c=new String(c.getBytes("ISO-8859-1"),"UTF-8");
    //这里规定必须使用String类型
    URLEncoder.encode("中国.jpg","UTF-8");

汉字转码时遇见的编译错误

    String c=request.getParameter("sex");
    //进行汉字转码时,对应的标签内容不能为空,否则编译错误
    c=new String(c.getBytes("ISO-8859-1"),"UTF-8");
    out.println(c);

Classes from the default package must not be referenced from JSP file错误

默认包下的Java类无法被JSP文件所引用,因此可以新建一个包,将报错的Java类添加进该包当中,之后使用 <%@ page import=“包名.类名” %> 进行导包。
注意一定要新建包然后放入类才行。

tomcat启动时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误

在这里插入图片描述

配置好web.xml的servlet服务后,JSP页面显示源代码

错误原因:
个人猜测:可能JSP和servlet同属于服务器操作,进行web配置的时候会出现冲突,导致都无法使用。
版本更新操作导致的疏忽。

    <servlet>
        <servlet-name>SearchStudentServlet</servlet-name>
        <servlet-class>StudentBao.SearchStudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>SearchStudentServlet</servlet-name>
    <url-pattern>/searchStudent</url-pattern>
</servlet-mapping>

解决办法一

直接把web.xml端的servlet代码注释掉,JSP页面立马恢复正常。
webServlet
name为起别名的标签
urlPatterns为配置访问触发标签
可以和原始标签功能一一对应

//放在import语句下面
@WebServlet(name="SearchStudent",urlPatterns = "/searchStudent",loadOnStartup = 1)

name属性

    <servlet>
        <servlet-name>SearchStudentServlet</servlet-name>
        <servlet-class>StudentBao.SearchStudentServlet</servlet-class>
    </servlet>

urlPatterns属性

    <servlet-mapping>
    <servlet-name>SearchStudentServlet</servlet-name>
    <url-pattern>/searchStudent</url-pattern>
</servlet-mapping>

loadOnStartup对应注册中的 加载顺序,只能填大于0的整数
,数字越小越先加载。

解决办法二(莽就完事了)

将标签**<web-app**后面的代码全给删了,servlet标签就能正常用了。
可能版本升级servlet标签可以使用@WebServlet代替更加方便,于是就忽视了老版本。
在这里插入图片描述

Servlet与jsp页面配置时拼写错误(The requested resource is not available.)

在这里插入图片描述

在这里插入图片描述
BUT!!!,配置的时候我用了大写L
还有配置的时候LoginServlet(map的键)已经对应http://localhost:8080/工程名/(map的值),所以使用的时候直接用LoginServlet就行了。
后续:
其实是配置的时候把servlet-name和mapping中配置url-pattern名字不一样,导致资源查找不到。

在这里插入图片描述

七种数据库中SELECT TOP的使用方法,不同数据库要使用不用select top

1. Oracle数据库  

SELECT * FROM TABLENAME WHERE ROWNUM <= N  

2. Infomix数据库  

SELECT FIRST N * FROM TABLENAME  

3. DB2数据库  

SELECT *  

FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME)  

WHERE ROWNUM <= N  

或者  

SELECT COLUMN FROM TABLENAME FETCH FIRST N ROWS ONLY  

4. SQL Server数据库  

SELECT TOP N * FROM TABLENAME  

5. Sybase数据库  

SET ROWCOUNT N  

GO  

SELECT * FROM TABLENAME  

6. MySQL数据库  

SELECT * FROM TABLENAME LIMIT N  

7. FoxPro数据库  

SELECT * TOP N FROM TABLENAME ORDER BY COLUMN  
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页