当前位置:首页 > CN2资讯 > 正文内容

我的世界Java版说我驱动过低

1天前CN2资讯


 web.xml文件



<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>FootballTeam</servlet-name> <servlet-class>FindFootOrPk</servlet-class> </servlet> <servlet-mapping> <servlet-name>FootballTeam</servlet-name> <url-pattern>/foot</url-pattern> </servlet-mapping> </web-app>



 

 

html文件



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>html调用servlet</title> </head> <body> <h1 align="center">请点击提交按钮</h1> <div align="center" > <form action="http://localhost:8080/ltb6w/foot" name="match" method="post"> <input type="submit" value="提交"> </form> </div> </body> </html>



 html文件中 action="  " 双引号中调用文件的手段很多,方法很灵活.要特别注意.

举几个栗子:

 

1 <a href="?flag=user_regist">注册</a>

2  例:

<form action="?args=888"> <input type="button" value="submit"> </form> 通过这个方法,无法读取args,必须换成一下写法 <form action=""> <input type="hidden" name="args" value="888"> <input type="button" value="submit"> </form>

 

要在web.xml中配置servlet配置好了后 在form的action中直接写你在web.xml中配置的<url-pattern>的名字。。例如

<servlet> <servlet-name>AdminLogin</servlet-name> <servlet-class> com.java.servlet.AdminLogin </servlet-class> <load-on-startup>22</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AdminLogin</servlet-name> <url-pattern>/AdminLogin</url-pattern> </servlet-mapping>


在form的action中就直接写AdminLogin就行了

 

 ① 完全匹配

<url-pattern>/test/</url-pattern>



② 路径匹配

<url-pattern>/*</url-pattern> struts2匹配根路径下的全部请求



③ 扩展名匹配

<url-pattern>*.do</url-pattern> struts1 <url-pattern>*.html</url-pattern> 匹配全部html结尾的请求 <url-pattern>*</url-pattern> 不能用*,否则报错action写web.xml中对应的url值~~~比如说有一个LoginServlet,他在web.xml中显示的应该是这样: <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> 而要提交的,也就是action应该等于<url-pattern>中的内容: action="<%=request.getContextPath()%>/loginServlet" 其中<%=request.getContextPath()%>为获得当前工程目录,jsp提交到servlet中必须加这个,否则会出现404找不到页的错误~~

 

JSP页面提交表单给Servlet时,路径的写法要格外注意。


例如在web.xml中注册如下的servlet:

<servlet> <servlet-name>addStudent</servlet-name> <servlet-class>org.mytest.addStudent</servlet-class> </servlet> <servlet-mapping> <servlet-name>addStudent</servlet-name> <url-pattern>/servlet/addStudent</url-pattern> </servlet-mapping>

假如说,你工程名字为HibernateApp3,JSP页面提交表单给servlet时有两种写法:

1. <form action=servlet/addStudent method=post>...</form> 2. <form action=/HibernateApp3/servlet/addStudentmethod=post>...</form>

注意:/代表根目录,如果路径是使用/开头,Tomcat就是webApp那个目录,如果你不是/开头代表你从当前工程的目录开始,例如:webApp/HibernateApp3/



这一点非常重要,很多提交表单时发生的错误都是因为提交路径出错造成的。 

这些都是从网上收集到的各种回答,总而言之,action的提交路径,和<url-pattern></url-pattern>中的路径保持一致就不会有错,不过是有前提的,就是路径入口处要是指向这个工程的,例如下面这种就是错误:

<form method="get" action="/yutao"> ,,而 <url-pattern>/yutao</url-pattern>,这样提交表单时,就会报404错误:The requested resource is not available。因为前面的“/”,指的是服务器的根目录,也就是Tomcat目录下的webapps。改为:<form method="get" action="/工程名/yutao",即可。

 url-parrern里面放的是servlet访问路径,我目前的结论是这路径随便写都写,当然,注意我上面说的。。。

 

 

 

 

 

 

 

import java.sql.*; import java.io.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/FindFootOrPk") public class FindFootOrPk extends HttpServlet { private static final long serialVersionUID = 1L; //JDBC驱动名和数据库URL static final String JDBC_DRIVER="com.mysql.jdbc.Driver"; static final String DB_URL="jdbc:mysql://localhost:3306/dudu";//dudu数据库名称 //数据库用户名和密码 static final String USER="root"; static final String PASS="123456"; /** * @see HttpServlet#HttpServlet() */ public FindFootOrPk() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn=null; Statement stmt=null; //设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); String title="前后端打通,连接数据库,我的世界来啦!"; // String name=request.getParameter("pk"); // String link=request.getParameter("link"); String docType = "<!DOCTYPE html>\n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n"); try{ // 注册 JDBC 驱动器 Class.forName("com.mysql.jdbc.Driver"); // 打开一个连接 conn = DriverManager.getConnection(DB_URL,USER,PASS); out.println("数据库连接成功!"); // 执行 SQL 查询 stmt = conn.createStatement();// String sql; //foot_ball 数据库表名称 sql = "SELECT*FROM foot_ball"; //sql语句,一定要保证正确.最好测试一下,要不html不显示. ResultSet rs = stmt.executeQuery(sql); //sql语句执行的结果 // 展开结果集数据库 while(rs.next()){ // 通过字段检索 int id = rs.getInt("id"); String tream = rs.getString("tream"); String url = rs.getString("url"); // 输出数据 out.println("ID: " + id); out.println(", 球队: " + tream); out.println(", 站点 URL: " + url); out.println("<br />"); } out.println("</body></html>"); // 完成后关闭 rs.close(); stmt.close(); conn.close(); } catch(SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch(Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 最后是用于关闭资源的块 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/21899.html

    分享给朋友:

    “我的世界Java版说我驱动过低” 的相关文章

    Linode悉尼数据中心:高性能云服务助力亚太业务增长

    Linode是一家成立于2003年的云服务提供商,专注于为开发者提供简化的基础设施服务。在全球范围内,Linode拥有多个数据中心,其中悉尼数据中心是其在亚太地区的重要节点。这个数据中心不仅为本地客户提供高效、稳定的云服务,还吸引了许多国际企业选择其作为亚太业务的支撑点。 数据中心位置与区域优势 L...

    主机论坛:获取信息与交流经验的最佳平台

    主机论坛概述 在当今的数字时代,主机论坛作为一个专注于域名、主机、VPS和服务器的讨论与信息交流平台,显得尤为重要。对于站长、开发者和一般用户来说,它们不仅是资讯获取的渠道,更是一个技术交流和问题解决的空间。主机论坛通过汇聚来自不同背景的用户,形成了一个活跃的社区,每个人都能找到自己感兴趣的话题,分...

    RackNerd黑五促销活动详解:超值套餐与刺激抽奖

    RackNerd黑五促销活动概述 RackNerd,成立于2017年,以其出色的虚拟主机、VPS主机和独立服务器服务,在国外主机商领域占有一席之地。随着公司不断壮大,RackNerd在全球20个国家设立了数据中心,涵盖美加、欧洲和亚洲,提供多样化的服务方案。我一直很欣赏他们采用的当下流行的KVM虚拟...

    Vultr注册送50美元优惠活动详细指南

    Vultr新用户注册活动概述 在寻找合适的云服务提供商时,我总是觉得选对平台会显得尤为重要。Vultr做为一个非常受欢迎的云服务提供商,给新用户带来了一项非常吸引人的优惠活动——注册即送50美元。这个活动让我感到非常兴奋,也让更多人有机会体验到高性价比的VPS服务。 这项活动非常简单易行。新用户只需...

    选择Cogent VPS的理由:稳定性、灵活性与优质支持

    谈到虚拟专用服务器(VPS),我想很多人可能会对这个概念产生好奇。VPS是一种将物理服务器分割成多个虚拟服务器的技术。每个VPS都有独立的操作系统和资源,这与共享主机有很大不同。共享主机的用户资源是共用的,而VPS用户则有更多的控制权和灵活性。这种架构使得VPS成为中小企业和开发者的理想选择。 接下...

    全面解析DMIT服务器:配置、优化与安全指南

    在数字化日益深入的时代,服务器的角色愈加重要,而DMIT服务器正是其中一个引人注目的技术创新。DMIT,这个综合性的信息技术平台,不仅为企业提供了强大的数据处理能力,还支持多种应用场景,成为现代信息系统中的重要组成部分。如果你在寻找一个强大而灵活的服务器解决方案,DMIT服务器绝对值得关注。 那么,...