005_HttpServlet

Java Web入门教程
本文介绍了一个简单的Java Web应用实现过程,包括使用Eclipse创建Web工程、编写HTML页面、开发Servlet处理HTTP请求等基本步骤,并展示了如何通过继承HttpServlet类简化Servlet的编写。

1. Servlet、GenericServlet和HttpServlet的继承关系:

Servlet (接口)

|

|

GenericServlet

|

|

HttpServlet (用于处理http的请求)

2. 在Eclipse使用Ctrl+T快捷键查看Servlet、GenericServlet和HttpServlet的继承关系:

3. 新建一个HelloWorldHttpServlet的Web工程

4. 在WebContent下新建一个index.html

5. 编写index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>Hello World HttpServlet</title>
	</head>
	<body>
		<h1>Hello World HttpServlet</h1>
	</body>
</html>

6. 新建一个HelloWorldHttpServlet.java类

7. 编写HelloWorldHttpServlet.java, 这里我们不再实行Servlet接口, 而是继承HttpServlet这个抽象类

package com.lywgames.myservlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldHttpServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doGet");
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}

8. 在web.xml里配置servlet

9. 运行项目, 在浏览器的地址栏中输入:

http://localhost:8080/HelloWorldHttpServlet/HWHS.action访问几次

10. doGet和doPost调用流程

org.apache.jasper.JasperException: 在 [21] 行处理 [/registration_action.jsp] 时发生异常 18: PreparedStatement pstmt = conn.prepareStatement(sql); 19: pstmt.setString(1, yonghuming); 20: pstmt.setString(2, yonghumima); 21: int count = pstmt.executeUpdate() ; 22: if (count == 1) { 23: out.println("鎭枩锛岀敤鎴锋敞鍐屾垚鍔燂紒<br/><br/>"); 24: out.println("<a href='login.jsp'>鐧诲綍绯荤粺</a>"); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:478) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因。 jakarta.servlet.ServletException: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY' org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:666) org.apache.jsp.registration_005faction_jsp._jspService(registration_005faction_jsp.java:168) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因。 java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY' com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:109) com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:114) com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:988) com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1166) com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1101) com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1467) com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1084) org.apache.jsp.registration_005faction_jsp._jspService(registration_005faction_jsp.java:147) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
06-13
严重: Servlet.service() for servlet [jsp] in context with path [/TSM-Admin-v2.1] threw exception [javax.servlet.ServletException: javax.servlet.jsp.JspException: TableTag Problem: javax.servlet.jsp.JspException: TableTag.doAfterBody() Problem: java.lang.Exception: You need to specify the totalRows (as an Integer) to use the org.extremecomponents.table.callback.LimitCallback. at org.extremecomponents.table.callback.LimitCallback.retrieveRows(LimitCallback.java:52) at org.extremecomponents.table.core.TableModelUtils.retrieveRows(TableModelUtils.java:52) at org.extremecomponents.table.core.TableModelImpl.execute(TableModelImpl.java:225) at org.extremecomponents.table.tag.TableTag.doAfterBody(TableTag.java:459) at org.apache.jsp.pages.awa.admin.manage.subnetList_jsp._jspx_meth_ec_005ftable_005f0(subnetList_jsp.java:917) at org.apache.jsp.pages.awa.admin.manage.subnetList_jsp._jspx_meth_cpm_005fwrap_005f2(subnetList_jsp.java:862) at org.apache.jsp.pages.awa.admin.manage.subnetList_jsp._jspService(subnetList_jsp.java:291) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(Standar
07-17
org.apache.jasper.JasperException: 在 [16] 行处理 [/registration_action.jsp] 时发生异常 13: String yonghuming = request.getParameter("username"); 14: String yonghumima = request.getParameter("password"); 15: Connection conn = DBUtil.getConnection(); 16: System.out.println(conn.isClosed()); 17: String sql = "INSERT INTO account(name, pass) VALUES(?, ?)"; 18: PreparedStatement pstmt = conn.prepareStatement(sql); 19: pstmt.setString(1, yonghuming); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:488) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因。 java.lang.NullPointerException: Cannot invoke "java.sql.Connection.isClosed()" because "conn" is null org.apache.jsp.registration_005faction_jsp._jspService(registration_005faction_jsp.java:142) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51
05-30
HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.view.jsp.business.security.login_005fother_jsp 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.view.jsp.business.security.login_005fother_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:198) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:414) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 根本原因。 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.view.jsp.business.security.login_005fother_jsp java.net.URLClassLoader.findClass(URLClassLoader.java:382) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:193) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:414) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看 Apache Tomcat/7.0.109
最新发布
10-15
org.apache.jasper.JasperException: 在 [69] 行处理 [/teacher/teacher_teaching.jsp] 时发生异常 66: <th field="credit" formatter="getCredit">课程学分</th> 67: </tr> 68: <%String username = session.getAttribute("username").toString(); 69: teacheraction te=new teacheraction(username);ResultSet rs =te.getaresult(); while(rs.next()) { %> 70: <tr> 71: <td><%= rs.getString("semester") %></td> 72: <td><%= rs.getString("course_name") %></td> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) javax.servlet.http.HttpServlet.service(HttpServlet.java:779) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) com.beacon.sms.filter.EncodingFilter.doFilter(EncodingFilter.java:27) 根本原因。 java.lang.NullPointerException org.apache.jsp.teacher.teacher_005fteaching_jsp._jspService(teacher_005fteaching_jsp.java:188) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:779) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) javax.servlet.http.HttpServlet.service(HttpServlet.java:779) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) com.beacon.sms.filter.EncodingFilter.doFilter(EncodingFilter.java:27)
06-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值