我是java web dev的新手。我做了我的研究,但仍然无法自己解决这个问题。
我正在尝试分析一个项目,它集成了spring,struts和hibernate。对于POJO的Spring和基本的应用程序开发,struts似乎用于处理请求和项目的更多“web-ish”部分,而hibernate与hql一起用于数据库接口。
我对信息流如何运作非常非常好奇,特别是对于post方法。通过冗长但有益的研究,似乎在离开TLS / SSL隧道后,解密的http(解密所以“s”部分可能不再存在,lol)请求(ascii文本)将被发送到java对象(从java类实例化,当然可能编译)容器。这些对象通常被称为servlet(如果我错了,请纠正我)。
当我试图找出容器如何决定它给出请求的servlet时,会出现令人费解的部分。再次通过研究它似乎通常由一个名为web.xml的配置文件处理,但奇怪的是我在这个文件中找不到它应该是的任何标记,更不用说名称与“目标”匹配的servlet了“action属性指定的名称,如下所示:
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
String json = null;
Spinner spinner;
Spinner spinner1;
public String loadJSONFromAsset() {
try {
InputStream is = getAssets().open("CustomerList.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
spinner = findViewById(R.id.spinner_01);
List<String> items = new ArrayList<>();
spinner.setOnItemClickListener(this);
spinner1 = findViewById(R.id.spinner_02);
List<String> item = new ArrayList<>();
JSONObject obj = new JSONObject(loadJSONFromAsset());
JSONArray array = obj.getJSONArray("Sheet1");
JSONObject obj1 = new JSONObject(loadJSONFromAsset());
JSONArray array1 = obj1.getJSONArray("Sheet2");
/*this.setTitle(root.getString("title"));*/
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
items.add(object.getString("FIELD1"));
// item.add(object.getString("FIELD2"));
// items.add(object.getString("FIELD3"));
}
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
// items.add(object.getString("FIELD1"));
item.add(object.getString("FIELD2"));
}
ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items);
spinner.setAdapter(adapter);
ArrayAdapter adapter1 = new ArrayAdapter(this,android.R.layout.simple_list_item_1, item);
spinner1.setAdapter(adapter1);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
spinner1.setSelection(position);
}
}
然而整个项目在Tomcat服务器上运行得很好。我能得出的唯一结论是,必须有其他方法在tomcat服务器中配置“java对象容器”来处理用户请求。它们是什么?/它是什么?
在我的理解中也可能存在很多误解,例如:整个java-class-object部分,纠正我,如果我错了你会这么善良。
答案 0 :(得分:0)
从Servlet规范3.0版开始,您还可以使用注释告诉服务器您的servlet在哪里。
在代码中,您正在寻找类似的内容:
@WebServlet("/handler/register")
public class SomeRandomServlet extends HttpServlet