Article 3: Getting Started with Servlet

zhaozj2021-02-16  55

Serious warning: People who know the servlet should not look down

Tell me someone to tell you:

Servlet is the server-side Java program

The client is called by the HTTP protocol, forming a dynamic web page at the client

what do you need:

A file: servlet.jar

What, do you ask this JAR file? Use your WinRAR to open it, there is nothing, just to cover the sky .class. Don't take too much. In short, these .class gives you a lot of methods.

Why, did you find this servlet.jar? I don't want to tell you anything, do you do it yourself.

Write a program to see:

Built a project mythree under your Tomcat's WebApps, remember, what else does it need? ! At the same time, I will build a folder in your Mythree, give it a name, just call javasource.

Mythree

WEB-INF

Javasource

Classes

Lib

Web.xml

Let servlet.jar in Mythree --- wild

In the eclipe, create a new project, also name mythree, easy to identify, put your source file (.java) in Mythree --- javasource, put your class file (.class) in Mythree --- Web-INF --- Classes

Inside. (If you don't know how to get, go back to Mars and Pluto.)

In Eclipe, choose "Libraries" on the right side of Mythree - - Properties - Left, select "Libraries" ----- "Add External Jars" enters, select the servlet.jar that just placed under LIB. . . .

Ok, write a class first, take the name: Test

The program code is as follows:

Import java.io. *;

Import javax.servlet. *;

Import javax.servlet.http. *;

Public Class Test Extends Httpservlet

{

Public void doget (httpservletRequest RQ,

HTTPSERVLETRESPONSE RP)

THROWS IOEXCEPTION, ServletException

{

Rp.setContentType ("text / html; charSet = GB2312");

PrintWriter out = rp.getwriter ();

Out.println (" Welcome to use servlet ");

}

}

Change your content of this Web.xml to

Public "- // Sun microsystems, Inc.//dtd Web Application 2.3 // en"

"http://java.sun.com/dtd/web-app_2_3.dtd">

123

test

123

/ abc

Please launch your Tomcat again

Enter: in your IE address bar:

Http: // localhost: 8080 / mythree / abc

Did you see the effect?

Why, I feel too boring, how is it a little complex?

The procedure just above is:

Import java.io. *;

Import javax.servlet. *;

Import javax.servlet.http. *;

Public Class Test Extends Httpservlet

{

Public void doget (httpservletRequest RQ,

HTTPSERVLETRESPONSE RP)

THROWS IOEXCEPTION, ServletException

{

Rp.setContentType ("text / html; charSet = GB2312");

PrintWriter out = rp.getwriter ();

Out.println ("");

Out.println ("

");

Out.println ("
");

Out.println ("
");

Out.println ("");

Out.println ("");

}

Public void dopost (httpservletRequest RQ,

HTTPSERVLETRESPONSE RP)

THROWS IOEXCEPTION, ServletException

{

Rp.setContentType ("text / html; charSet = GB2312");

PrintWriter out = rp.getwriter ();

String t = rq.getParameter ("t1");

Out.println (" Welcome:");

Out.println (T);

Out.println ("");

}

}

Please launch your Tomcat again

Enter: in your IE address bar:

Http: // localhost: 8080 / mythree / abc

Enter your name in the box box, then press "OK" to see. .

Just want to explain 2 points:

Look

Out.println ("
"); and

String t = rq.getParameter ("t1");

The following RQ.GetParameter ("t1") will find a NAME called T1, and obtains its content assignment to T.

Look at Web.xml

123

test

123

/ abc

Here: Test in Servlet-Class> Test is the same as the name of the class in your project.

Here / ABC ABC is the same as you entered later after Mythree on the IE address bar

Here 123 , above, below.

These, have you found it?

Now you know how to change / ABC to / CBA, do you have 123 to 321?

Give one another example:

Establish an engineering GiveYou (don't forget web-infers and her children)

Write three files in GiveYou

1: login.jsp content as follows

<% @ Page ContentType = "text / html; charset = GB2312"%>

UserName:

Password:

2: Success.jsp contents are as follows

<% @ Page ContentType = "text / html; charset = GB2312"%>

error </ title></p> <p><meta http-equiv = "content-type" content = "text / html; charSet = GB2312"> </ head></p> <p><body></p> <p><h1> <font color = green> Success !! </ font> </ h1></p> <p><form mothod = "post" action = "login.jsp"></p> <p><Input Type = "Submit" name = "submit" value = "Return"></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>3: Error.jsp content is as follows</p> <p><% @ Page ContentType = "text / html; charset = GB2312"%></p> <p><html></p> <p><HEAD></p> <p><title> error </ title></p> <p></ hEAD></p> <p><body></p> <p><h1> <font color = red> error !! You did not enter your username, password </ font> </ h1></p> <p><form mothod = "post" action = "login.jsp"></p> <p><Input Type = "Submit" name = "submit" value = "Return"></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>Built newly built your project in Eclipe, also named GiveYou (put your source file (.java) in Mythree --- javasource, put your class file (.class) in Mythree --- Web- Inf --- Classes inside), don't forget to import servlet.jar</p> <p>Write a class TEST, the content is as follows:</p> <p>Import java.io. *;</p> <p>Import javax.servlet. *;</p> <p>Import javax.servlet.http. *;</p> <p>Public Class Test Extends Httpservlet</p> <p>{</p> <p>Private string Userid, Password;</p> <p>Public void dopost (httpservletRequest RQ,</p> <p>HTTPSERVLETRESPONSE RP)</p> <p>THROWS IOEXCEPTION, ServletException</p> <p>{</p> <p>Rp.setContentType ("text / html; charSet = GB2312");</p> <p>PrintWriter out = rp.getwriter ();</p> <p>Userid = RQ.GetParameter ("UserName");</p> <p>Password = rq.getParameter ("password");</p> <p>IF ((Userid! = null) && (Password! = null))</p> <p>{</p> <p>rp.sendredirect ("/ GiveYou / Success.jsp");</p> <p>}</p> <p>Else</p> <p>{</p> <p>rp.sendredirect ("/ GiveYou / Error.jsp");</p> <p>}</p> <p>}</p> <p>}</p> <p>Since Web.xml is the same as Mythree, you don't say it here, please start your Tomcat again.</p> <p>Enter: in your IE address bar:</p> <p>Http: // localhost: 8080 / giveyou /login.jsp</p> <p>This chapter is written in this chapter: When you come here, you must have been very impatient, think that my "no nonsense" became "nonsense,", ", my brother, my brother, to the above example, do you think you are not You can write it slightly more complicated, slightly beautiful, don't let the page are so pale, don't let the text always have such a sigh, do dozens of classes, call each other, in dopost () Write a conditional statement, jump to different page interviews according to different values ​​obtained, I believe that your program will never be so lonely.</p> <p>Little earlier: You should notice that each app is placed under the WebApps of Tomcat, each application must have a web-INF structure (you don't tell me that you didn't pay attention, then I will I have seen so many nonsense sorrows). why? Because the server Tomcat started, she relieves what applied to her "jurisdiction". She is under her WebApps folder, finds all the folders, and see these folders do not have a web-INF folder. If there is, she will go see WEB.XML under Web-INF. file. If any of the folders under WebApps do not have a web-INF structure, she will think that this thing has nothing to do with her. Tomcat automatically reads the content in web.xml, when you run your program, she looks at whether you write Web.xml provides a related configuration. --- I hope that I will make it clear! ! ! :)</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-20955.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="20955" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.036</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'ps_2BkCZjEbfZPRvcU1ubEl6Tvz89_2FGHR5_2FWGpGz3agbD9nUAjMT4QCj25me3XVSK8QKQGwMKUjqsmX3U6fXV3Nw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>