Санкт-Петербургский государственный университет информационных технологий, механики и оптики
Кафедра вычислительной техники
Системы программирования интернет-приложений
Лабораторная работа № 6
«JSP»
Вариант 304
Выполнили:
студенты группы 4103
Рябинина Александра
Пермяков Валерий
Голубцов Евгений
2011
Задание
Создать JSP-страницу, которая формирует HTTP-запрос на проверку попадания точки в заданную область на координатной плоскости и осуществляет обработку этого запроса.
Код JSP-страницы:
Index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Group 4103 Variant №304</title>
<script>
var flpoint=false;
var flmin=false;
var r=1;
function SetPos(Obj){
Obj.setSelectionRange(Obj.value.length,Obj.value.length);
}
function validate(Obj) {
len=Obj.value.length;
if (len==16) {event.returnValue=false; return 0;}
if ((event.keyCode==45) && (len==0)){
flmin=true;
return 0;
}
if ((event.keyCode==46)&&(!flpoint)&&(len>0)&&!(flmin&&len==1)){
flpoint=true;
return 0;
}
str=Obj.value.toString();
var st=String.fromCharCode(event.keyCode);
if (event.keyCode==8) {
if (str[len-1]=='.') {flpoint=false;}
if (len==1) flmin=false;
return 0;
}
if ((event.keyCode<48)||(event.keyCode>57)){event.returnValue=false;}
else {
str=str+st;
i=parseFloat(str);
if ((i<=-5)||(i>=3)) event.returnValue=false;
}
}
function ChangeR(Value){
r=Value;
}
function MagicTransport(trans_val){
document.getElementById("param1").value = trans_val;
}
function mousePageXY(e){
var x = 0, y = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY){
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY){
x = e.clientX + (document.documentElement.scrollLeft ||
document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop ||
document.body.scrollTop) - document.documentElement.clientTop;
}
var R=265*1.0/2;
var xx=(x-(R+380))*r*1.0/R;
var yy=((R+210)-y)*r*1.0/R;
document.getElementById("param1").value = xx;
document.getElementById("2").value = yy;
document.form1.submit();
}
</script>
</head>
<table width="800px" border="1" align="center" cellpadding="0" cellspacing="0" class="main_border">
<tr>
<td width="800px" height="150" bgcolor="#111111">
<CENTER>
<font color="#CCCCCC">
Рябинина А. Голубцов Е. Пермяков В.<BR>
Гр. 4103<BR>
Вар. №304
</font>
</CENTER>
</td>
</tr>
<tr>
<td width="600px" height="800px" align="left" valign="top" bgcolor="#CCCCCC">
<CENTER><font>№6 </font></CENTER>
<Label class="label1">Х: </Label>
<input name="button1" class="button2" type="submit" value="-3" onclick="MagicTransport(this.value)" />
<input name="button1" class="button3" type="submit" value="-2" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button4" type="submit" value="-1" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button5" type="submit" value="0" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button6" type="submit" value="1" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button7" type="submit" value="2" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button8" type="submit" value="3" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button9" type="submit" value="4" onclick="MagicTransport(this.value)"/>
<input name="button1" class="button10" type="submit" value="5" onclick="MagicTransport(this.value)"/>
<table width="490px" id="Tab_result" valign="top" bgcolor="#CCBBCC" border="1px" class="table1">
<tr>
<td width="30px"> X </td>
<td width="30px"> Y </td>
<td width="30px"> R </td>
<td width="200px"> Результат </td>
</tr>
<%
String str;
if (request.getParameter("param1")==null) str="";
else {
str = request.getParameter("param4");
double x= Double.parseDouble(request.getParameter("param1"));
double y= Double.parseDouble(request.getParameter("param2"));
double r= Double.parseDouble(request.getParameter("param3"));
boolean act=false;
if (((x>=0)&&(y>=0)&&(y<-2*x+r))||((x>0)&&(y<0)&&(x<r)&&(y>-r))||((x<0)&&(y<0)&&(Math.sqrt(y*y+x*x)<r*r)))
act=true; str+=request.getParameter("param1")+";"+request.getParameter("param2")+";"+request.getParameter("param3")+";";
if (act) str+="tt;";
else str+="ff;";
int n=str.length();
int count=0;
String[] s= new String [5];
for (int i=0;i<4;i++) s[i]="";
for(int i=0;i<n;i++){
if (str.charAt(i)==';') {
count++;
}
else s[count]+=str.charAt(i);
if (count==4) {
count=0;
%>
<tr>
<td><%= s[0] %></td>
<td><%= s[1] %></td>
<td><%= s[2] %></td>
<td><% if (s[3].charAt(0)=='t') {%> true <%} else {%> false <%}%></td>
</tr>
<%
for (int k=0;k<4;k++) s[k]="";
} }} %>
</table>
<form id="form1" name="form1" method="GET" action="" onSubmit = "return checkform(this)" >
<Label class="label9">Point coordinates:</Label>
<BR>
<input id="param1" type="hidden" name="param1" value="0">
<Label class="label2">Y: </Label>
<input type="text" id="2" name="param2" maxlength="15" class="input2" onKeyPress="validate(document.getElementById('2'))" onclick="SetPos(document.getElementById('2'))" required />
<Label class="label3">R: </Label>
<input type="radio" name="param3" value="1" CHECKED class="radiobut1" onclick="ChangeR(this.value)"> <Label class="label4">1 </Label>
<input type="radio" name="param3" id="1" value="1.5" class="radiobut2" onclick="ChangeR(this.value)"> <Label class="label5">1.5 </Label>
<input type="radio" name="param3" value="2" class="radiobut3" onclick="ChangeR(this.value)"> <Label class="label6">2 </Label>
<input type="radio" name="param3" value="2.5" class="radiobut4" onclick="ChangeR(this.value)"> <Label class="label7">2.5 </Label>
<input type="radio" name="param3" value="3" class="radiobut5" onclick="ChangeR(this.value)"> <Label class="label8">3 </Label>
<img src="img/pic.jpg" alt="Фигура по заданию (для определения попадания точки)" class="img1" onclick="mousePageXY(event)">
<input name="button1" id="sub" class="button1" type="submit" value="Send" />
<BR><BR><BR>
<input id="param4" type="hidden" name="param4" value=<%= str %>>
</form>
</table>
</body>
</html>